Mybatis解决什么问题?
- 数据库链接创建、释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库链接池可解决此问题。
2、Sql 语句在代码中硬编码,造成代码不易维护,实际应用 sql 变化的可能较大,sql 变动需要改变 java代码。
3、使用 preparedStatement 向占有位符号传参数存在硬编码,因为 sql 语句的 where 条件不一定,可能 多也可能少,修改 sql 还要修改代码,系统不易维护。
4、对结果集解析存在硬编码(查询列名),sql 变化导致解析代码变化,系统不易维护,如果能将数据库记录封装成 pojo 对象解析比较方便。
Mybatis是什么?
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
什么是持久层框架?
持久层的工作:就是把数据或者信息保存到存储设备中。
持久层的意义:把操作存储设备的工作封装起来。有利于代码的重用,代码的逻辑清晰等。
支持定制SQL
Mybatis需要手写sql加入到方法的封装,无论多简单的访问都需要写sql(个人觉得小项目使用Hibernate作持久层会更好一点)
高级映射(ORM)
Mybatis可以通过Sql查出来的数据进行封装到实体类中。
Mybatis的工作流程图
谁做了什么工作?需要准备什么环境?
环境搭建:
- 作为持久层,肯定需要调用数据库驱动进行对数据库进行操作。
- 作为ORM框架,肯定需要对实体类进行封装。
- 持久层的工作是执行sql,所以就需要方法和sql绑定。
开发步骤:
- 准备实体类。
- 准备要实现的sql。
- 准备执行sql的方法。
- 准备数据库驱动。
- 准备sql与方法映射。
用户调用持久层方法,方法绑定着sql信息,持久层的方法调用数据库驱动执行sql,返回数据,封装到实体类中,最后返回到调用者手中。
具体使用请看:https://mybatis.org/mybatis-3/zh/index.html