MyBatis
是一款优秀的持久层框架,一个半ORM
(对象关系映射)框架,它支持定制SQL
,它内部封装了JDBC
,开发时只需要关注SQL
语句本身。直接编写原生态SQL
,可以严格控制sql
执行性能,灵活度高。
ORM
,对象关系映射,是一种为了解决关系型数据库数据
与简单Java对象(POJO)
的映射关系的技术。- 简单的说,
ORM
是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系型数据库中。
Hibernate
属于全自动ORM
映射工具,使用Hibernate
查询关联对象或者关联集合对象时,可以根据对象关系模型直接获取,所以它是全自动的。- 而
Mybatis
在查询关联对象或关联集合对象时,需要手动编写sql
来完成,所以,称之为半自动ORM
映射工具。
- 传统
JDBC
开发存在的问题- 频繁创建数据库连接对象、释放,容易造成系统资源浪费,影响系统性能。
- 可以使用连接池解决这个问题。但是使用
jdbc
需要自己实现连接池。 - sql语句定义、参数设置、结果集处理存在硬编码。实际项目中sql语句变化的可能性较大,一旦发生变化,需要修改java代码,系统需要重新编译,重新发布。不好维护。