MyBatis_1 - MyBatis Introduce

MyBatis与Hibernate对比
本文对比了MyBatis和Hibernate两大持久层框架的特点及适用场景。MyBatis提供了更细致的SQL优化能力,易于掌握;而Hibernate则在对象维护和缓存方面表现更佳,支持更强大的二级缓存机制。

传统的JDBC步骤

  • 连接数据库,注册驱动和数据库信息
  • 操作Connection,打开Statement对象
  • 通过Statement执行SQL,返回结果到ResultSet对象
  • 使用ResultSet读取数据,然后通过代码转化为具体的POJO对象
  • 关闭数据库相关资源

 

以上差不多就是传统JDBC的操作步骤,它存在一些弊端:

  1. 工作量相对较大

先连接,然后处理JDBC底层事务,处理数据类型,还需操作Connection对象,Statement对象和ResultSet对象去拿数据。

 

  1. 需要对JDBC编程可能产生的异常进行捕获处理并正确的关闭连接

 

为了简化数据库操作ORM模型出现...

 

ORM:数据库的表和简单Java对象的映射关系模型。

 

后面不在引申,直接看重点吧...

 

什么是MyBatis?

MyBatis是支持定制化 SQL存储过程以及高级映射的优秀的持久层框架。

MyBatis避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。

MyBatis可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。

 

 

MyBatis Hibernate

  1. 开发速度
    1. Hibernate真正掌握要比MyBatis困难 , 而且HibernateMyBatis更加重量级
    2. MyBatis相对简单,上手快,但相对简陋

 

  1. 开发工作量
    1. MyBatis需要手动编写SQL语句 , 可以按照需求操作指定字段 ,提高程序的效率.
    2. Hibernate也可以通过写SQL语句操作指定字段,但这样破坏了Hibernate的封装以及简洁性.

 

  1. 移植性 /扩展性
    1. Hibernate与具体数据库的关联只需在XML中配置即可,所有的HQL语句与具体使用的数据库无关 , 移植性好
    2. MyBatis项目中的SQL语句都是依赖所用数据库的 , 所以移植性/扩展性较差.

 

  1. 优势对比
    1. MyBatis
      1. 可以进行更为细致的SQL优化,减少操作字段
      2. 容易掌握,Hibernate门槛较高
      3. 小巧、方便、高效、简单、直接、半自动化

 

  1. Hibernate
    1. DAO层开发相对MyBatis简单,MyBatis需要维护SQL和结果映射.
    2. Hibernate对对象的维护和缓存要比MyBatis,对增删查改的对象维护更方便.
    3. Hibernate移植性好,MyBatis移植性不好,不同的数据库需要写不同的SQL.
    4. Hibernate有更好的二级缓存机制,可以使用第三方缓存,MyBatis本身提供的缓存机制不佳.
    5. 强大、方便、高效、复杂、间接、全自动化

 

  1. Hibernate的缺点
    1. 全表映射不方便,比如更新时需要发送所有的字段
    2. 无法根据不同的条件组装不同的SQL
    3. 对多表关联和复杂SQL查询支持较差.
    4. 不能支持有效存储过程
    5. 虽然有HQL,但是性能差,大型互联网系统往往需要优化SQL,Hibernate做不到.

 


参考 :http://www.mybatis.org/mybatis-3/zh/index.html

  http://blog.youkuaiyun.com/jiuqiyuliang/article/details/45378065

  https://www.zhihu.com/question/21104468

  <深入浅出MyBatis技术原理与实战>


写在最后,这篇文章以及后续的MyBatis学习笔记文章,都是在阅读<深入浅出MyBatis技术原理与实战>一书,或网上其他有关MyBatis资料中整理的。

后续不在标注内容出处.....

【无线传感器】使用 MATLAB和 XBee连续监控温度传感器无线网络研究(Matlab代码实现)内容概要:本文围绕使用MATLAB和XBee技术实现温度传感器无线网络的连续监控展开研究,介绍了如何构建无线传感网络系统,并利用MATLAB进行数据采集、处理与可视化分析。系统通过XBee模块实现传感器节点间的无线通信,实时传输温度数据至主机,MATLAB负责接收并处理数据,实现对环境温度的动态监测。文中详细阐述了硬件连接、通信协议配置、数据解析及软件编程实现过程,并提供了完整的MATLAB代码示例,便于读者复现和应用。该方案具有良好的扩展性和实用性,适用于远程环境监测场景。; 适合人群:具备一定MATLAB编程基础和无线通信基础知识的高校学生、科研人员及工程技术人员,尤其适合从事物联网、传感器网络相关项目开发的初学者与中级开发者。; 使用场景及目标:①实现基于XBee的无线温度传感网络搭建;②掌握MATLAB与无线模块的数据通信方法;③完成实时数据采集、处理与可视化;④为环境监测、工业测控等实际应用场景提供技术参考。; 阅读建议:建议读者结合文中提供的MATLAB代码与硬件连接图进行实践操作,先从简单的点对点通信入手,逐步扩展到多节点网络,同时可进一步探索数据滤波、异常检测、远程报警等功能的集成。
内容概要:本文系统讲解了边缘AI模型部署与优化的完整流程,涵盖核心挑战(算力、功耗、实时性、资源限制)与设计原则,详细对比主流边缘AI芯片平台(如ESP32-S3、RK3588、Jetson系列、Coral等)的性能参数与适用场景,并以RK3588部署YOLOv8为例,演示从PyTorch模型导出、ONNX转换、RKNN量化到Tengine推理的全流程。文章重点介绍多维度优化策略,包括模型轻量化(结构选择、输入尺寸调整)、量化(INT8/FP16)、剪枝与蒸馏、算子融合、批处理、硬件加速预处理及DVFS动态调频等,显著提升帧率并降低功耗。通过三个实战案例验证优化效果,最后提供常见问题解决方案与未来技术趋势。; 适合人群:具备一定AI模型开发经验的工程师,尤其是从事边缘计算、嵌入式AI、计算机视觉应用研发的技术人员,工作年限建议1-5年;熟悉Python、C++及深度学习框架(如PyTorch、TensorFlow)者更佳。; 使用场景及目标:①在资源受限的边缘设备上高效部署AI模型;②实现高帧率与低功耗的双重优化目标;③掌握从芯片选型、模型转换到系统级调优的全链路能力;④解决实际部署中的精度损失、内存溢出、NPU利用率低等问题。; 阅读建议:建议结合文中提供的代码实例与工具链(如RKNN Toolkit、Tengine、TensorRT)动手实践,重点关注量化校准、模型压缩与硬件协同优化环节,同时参考选型表格匹配具体应用场景,并利用功耗监测工具进行闭环调优。
(清零流程:进维修模式—打开软件清零) 一、清零操作 第一步:打印机进入维修模式(查看维模式进法)。 第二步:废墨计数器:一般选【主要】 ,如报错002请选择【全】或【其它选项】。清零须用USB线把打印机接上电脑,进入维修模式放上纸,再点【清零】操作,提示【恭喜您!成功啦!】重开打印机清零完成。 报错提示: 1. 如报错006 001 005说明没进到维修模式。 2. 报错009说明硬件有问题,可点【读取】查看错误代码, 正常关闭打印机排除硬件问题再操作。 3. 报错002说明有废墨计数器未选对或软件不支持该型号。 4. 打印机有其它硬件问题时,点了【清零】后软件变灰不提示成功,过一分钟直接关打印机重开即可。 二、维修模式的进法(不同机型进法不同,认真阅读再操作) [G1800 G2800 G3800 G4800 IP8780 IP7280 IX6880 IX6780 MG3580 MG3680 TS5080 TS6080 TS6020......]维修模式方法如下: 1.先关闭电源 打印机放纸 2.按下【停止】键,再按【电源】 键。(两键都不松开) 3.当电源灯点亮时,不松【电源】键,只松【停止】键 4.连按5次【停止】键,两键同时松开。 5.电源灯长亮,进入成功。(有时两个灯) [G1810 G2810 G3810 G4810 G5080 G6080 G8080 GM2020 GM4080 TS3380 TS3480 TSS708 TS5120 TS5320 TS5180 TS6120 TS6180 TS6280 TS6220 TS6380 TS6320 TR4580 TR4520 TR7520] 维修模式方法如下: 1.先关闭打印机电源,机子里放纸,按下【电源】键不放手。 2.当电源灯亮时,不松【电源】键,连按5次【停止】键,两键同时松开。 3.电源灯长亮
《Unity引擎下的经典平台游戏实现剖析》 在当代游戏开发实践中,Unity引擎凭借其高效的三维图形处理能力、多平台适配特性以及直观的脚本编写界面,已成为广泛采用的工具之一。本文将以一个具体的案例——基于Unity环境重新构建的经典平台跳跃游戏为例,系统阐述该引擎在复刻传统游戏过程中的技术应用与实现逻辑。 Unity采用组件化设计理念,游戏内的每个实体均由多种功能模块组合而成。在本案例中,游戏角色、地形模块及敌对单位均通过添加相应组件实现其基础功能。以主角为例,其视觉呈现依赖于精灵渲染组件,二维刚体组件负责模拟物理运动规律,而自定义编写的行为脚本则定义了角色的移动、跳跃及交互响应等核心逻辑。 项目主目录通常包含完整的源代码资源,其中C#脚本构成了游戏行为控制的基石。开发者通过定义“主角控制类”来封装角色的状态管理与动作响应,同时设计“关卡管理类”用于统筹场景布局与进度控制,“道具效果类”则处理角色能力强化等特殊事件。项目说明文档一般会提供详细的环境配置指引与代码结构说明,帮助使用者快速理解项目架构并掌握修改方法。 在Unity中,场景作为游戏世界的容器,承载了所有对象的空间关系与属性配置。本案例可能包含多个独立场景,分别对应不同难度或主题的关卡,每个关卡内均预设了平台排布、敌对单位生成点及通关条件等要素。动画系统的运用进一步丰富了角色表现,通过状态机控制器可实现行走、跳跃、受伤等动作间的平滑过渡。 音效与背景音乐是塑造游戏氛围的关键要素。借助Unity的音频管理模块,开发者能够根据游戏进程动态触发对应的声效资源,重现原版游戏的听觉体验。物理引擎在二维平台游戏中尤为重要,通过为对象添加矩形或圆形碰撞体,可实现精确的接触检测与力学反馈。 总体而言,该案例不仅展示了利用Unity引擎重构经典游戏的技术路径,更为学习者提供了深入理解二维游戏开发流程的实践样本。从脚本编写到系统集成,从资源管理到交互设计,该项目全面呈现了现代游戏开发工具在传承经典玩法过程中的方法论价值,为不同阶段的开发者提供了可借鉴的技术范本与设计思路。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.4.4</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>cn.scifinexus</groupId> <artifactId>jh-picture-backend</artifactId> <version>0.0.1-SNAPSHOT</version> <name>jh-picture-backend</name> <description>jh-picture-backend</description> <url/> <licenses> <license/> </licenses> <developers> <developer/> </developers> <scm> <connection/> <developerConnection/> <tag/> <url/> </scm> <properties> <java.version>17</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> <!-- Sa-Token安全框架 https://sa-token.cc/doc.html#/ --> <dependency> <groupId>cn.dev33</groupId> <artifactId>sa-token-spring-boot3-starter</artifactId> <version>1.41.0</version> </dependency> <!--数据库操作MybatisPlus https://baomidou.com/introduce/--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-spring-boot3-starter</artifactId> <version>3.5.11</version> </dependency> <!--MybatisPlus分页插件 https://baomidou.com/introduce/--> <!-- jdk 11+ 引入可选模块 --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-jsqlparser</artifactId> <versio
03-27
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值