首先我们来说一下mybatis
的什么:
MyBatis 是一款优秀的持久层框架,一个半 ORM(对象关系映射) 框架,它支持定制化
SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以
及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和
Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
在介绍mybatis
时提到ORM,那么ORM是什么
ORM(Object Relational Mapping),对象关系映射,是一种为了解决关系型数据库数据
与简单 Java 对象(POJO)的映射关系的技术。简单的说,ORM 是通过使用描述对象和数
据库之间映射的元数据,将程序中的对象自动持久化到关系型数据库中。
Hibernate
属于全自动 ORM 映射工具,使用 Hibernate 查询关联对象或者关联集合对象
时,可以根据对象关系模型直接获取,所以它是全自动的。
而 Mybatis 在查询关联对象或关联集合对象时,需要手动编写 sql 来完成,所以,称之为
半自动 ORM 映射工具。
1、数据库链接创建、释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库连接
池可解决此问题。
解决:在 mybatis-config.xml 中配置数据链接池,使用连接池管理数据库连接。
2、Sql 语句写在代码中造成代码不易维护,实际应用 sql 变化的可能较大,sql 变动需要改
变 java 代码。
解决:将 Sql 语句配置在 XXXXmapper.xml 文件中与 java 代码分离。
3、向 sql 语句传参数麻烦,因为 sql 语句的 where 条件不一定,可能多也可能少,占位符
需要和参数一一对应。
解决: Mybatis 自动将 java 对象映射至 sql 语句。
4、对结果集解析麻烦,sql 变化导致解析代码变化,且解析前需要遍历,如果能将数据库
记录封装成 pojo 对象解析比较方便。
解决:Mybatis 自动将 sql 执行结果映射至 java 对象。
与传统的数据库访问技术相比,ORM 有以下优点:
一:
二:
MyBatis 专注于 SQL 本身,是一个足够灵活的 DAO 层解决方案。
对性能的要求很高,或者需求变化较多的项目,如互联网项目,MyBatis 将是不错的选择。
都是对 jdbc 的封装,都是持久层的框架,都用于 dao 层的开发。
映射关系
SQL 优化和移植性
开发难易程度和学习成本
综上所述
MyBatis 是一个小巧、方便、高效、简单、直接、半自动化的持久层框架,
Hibernate 是一个强大、方便、高效、复杂、间接、全自动化的持久层框架。
本文地址:https://blog.csdn.net/Black_Customer/article/details/107403819
如对本文有疑问, 点击进行留言回复!!
Postgresql结合postgis使用java的JDBC连接
网友评论