Mybatis总结
一、什么是Mybatis
MyBatis是一个支持普通SQL查询、存储过程和高级映射的优秀持久层框架,使用简单的XML或注解用于配置和原始映射,将POJO和数据库记录进行相互映射
二、Mybatis的执行步骤
1.创建 SqlSessionFactory 对象。
2.通过 SqlSessionFactory 获取 SqlSession 对象。
3.通过 SqlSession 获得 Mapper 代理对象。
4.通过 Mapper 代理对象,执行数据库操作。
5.执行成功,则使用 SqlSession 提交事务。
6.执行失败,则使用 SqlSession 回滚事务。
7.最终,关闭会话。
三、Mapper编写有几种方式
接口绑定有三种实现方式:
1.通过 XML Mapper 里面写 SQL 来绑定。在这种情况下,要指定 XML 映射文件里面的 “namespace” 必须为接口的全路径名。
2.通过注解绑定,就是在接口的方法上面加上 @Select、@Update、@Insert、@Delete 注解,里面包含 SQL 语句来绑定。
3.是第二种的特例,也是通过注解绑定,在接口的方法上面加上 @SelectProvider、@UpdateProvider、@InsertProvider、@DeleteProvider注解,通过 Java 代码,生成对应的动态 SQL 。
四、Mybatis的优点
1、基于SQL语句编程,相当灵活,不会对应用程序或者数据库的现有设计造成任何影响,SQL写在XML里,解除sql与程序代码的耦合,便于统一管理;提供XML标签,支持编写动态SQL语句,并可重用。
2、与JDBC相比,减少了50%以上的代码量,消除了JDBC大量冗余的代码,不需要手动开关连接;
3、很好的与各种数据库兼容(因为MyBatis使用JDBC来连接数据库,所以只要JDBC支持的数据库MyBatis都支持)。
4、能够与Spring很好的集成;
5、提供映射标签,支持对象与数据库的ORM字段关系映射;提供对象关系映射标签,支持对象关系组件维护。
五、Mybatis的缺点
1、SQL语句的编写工作量较大,尤其当字段多、关联表多时,对开发人员编写SQL语句的功底有一定要求。
2、SQL语句依赖于数据库,导致数据库移植性差,不能随意更换数据库。