ORM框架对比以及Mybatis配置文件详解
ORM框架对比以及Mybatis配置文件详解
0、数据库操作框架的历程
(1) JDBC
JDBC(Java Data Base Connection,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成.JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序
- 优点:运行期:快捷、高效
- 缺点:编辑期:代码量大、繁琐异常处理、不支持数据库跨平台
(2) DBUtils
DBUtils是Java编程中的数据库操作实用工具,小巧简单实用。
DBUtils封装了对JDBC的操作,简化了JDBC操作,可以少写代码。
DBUtils三个核心功能介绍
1、QueryRunner中提供对sql语句操作的API
2、ResultSetHandler接口,用于定义select操作后,怎样封装结果集
3、DBUtils类,它就是一个工具类,定义了关闭资源与事务处理的方法
(3)Hibernate
Hibernate 是由 Gavin King 于 2001 年创建的开放源代码的对象关系框架。它强大且高效的构建具有关系对象持久性和查询服务的 Java 应用程序。
Hibernate 将 Java 类映射到数据库表中,从 Java 数据类型中映射到 SQL 数据类型中,并把开发人员从 95% 的公共数据持续性编程工作中解放出来。
Hibernate 是传统 Java 对象和数据库服务器之间的桥梁,用来处理基于 O/R 映射机制和模式的那些对象。
Hibernate 优势
-
Hibernate 使用 XML 文件来处理映射 Java 类别到数据库表格中,并且不用编写任何代码。
-
为在数据库中直接储存和检索 Java 对象提供简单的 APIs。
-
如果在数据库中或任何其它表格中出现变化,那么仅需要改变 XML 文件属性。
-
抽象不熟悉的 SQL 类型,为提供工作中所熟悉的 Java 对象。
-
Hibernate 不需要应用程序服务器来操作。
-
操控你数据库中对象复杂的关联。
-
最小化与访问数据库的智能提取策略。
-
提供简单的数据询问。
Hibernate劣势
-
hibernate的完全封装导致无法使用数据的一些功能。
-
Hibernate的缓存问题。
-
Hibernate对于代码的耦合度太高。
-
Hibernate寻找bug困难。
-
Hibernate批量数据操作需要大量的内存空间而且执行过程中需要的对象太多
(4) JDBCTemplate
JdbcTemplate针对数据查询提供了多个重载的模板方法,你可以根据需要选用不同的模板方法.如果你的查询很简单,仅仅是传入相应SQL或者相关参数,然后取得一个单一的结果,那么你可以选择如下一组便利的模板方法。
优点:运行期:高效、内嵌Spring框架中、支持基于AOP的声明式事务
缺点:必须于Spring框架结合在一起使用、不支持数据库跨平台、默认没有缓存
1、Mybatis优点缺点
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
优点:
1、与JDBC相比,减少了50%的代码量
2、 最简单的持久化框架,简单易学
3、SQL代码从程序代码中彻底分离出来,可以重用
4、提供XML标签,支持编写动态SQL
5、提供映射标签,支持对象与数据库的ORM字段关系映射
缺点:
1、SQL语句编写工作量大,熟练度要高
2、数据库移植性比较差,如果需要切换数据库的话,SQL语句会有很大的差异
2、第一个Mybatis项目
1、创建普通的maven项目
2、导入相关的依赖
pom.xml
3、创建对应的数据表,数据表使用之前的demo数据库,脚本文件在群里,大家自行去下载安装
4、创建与表对应的实体类对象
emp.java
5、创建对应的dao类
EmpDao.java
6、编写配置文件
log4j.properties
mybatis-config.xml
EmpDao.xml
7、编写测试类
MyTest.java
3、增删改查的基本操作
EmpDao.java
EmpDao.xml
MyTest.java
4、配置文件详解
在mybatis的项目中,发现了有一个mybatis-config.xml的配置文件,这个配置文件是mybatis的全局配置文件,用来进行相关的全局配置,在任何操作下都生效的配置。下面要针对其中的属性做详细的解释,方便大家在后续使用的时候更加熟练。
mybatis-config.xml
EmpDaoAnnotation.java
__EOF__

本文链接:https://www.cnblogs.com/Courage129/p/14111562.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端