mybatis
详 解
为什么使用mybaits
mybatis定义
mybatis是一个持久层框架,通过mybatis提供的映射方式,灵活的生成满足需求的sql语句。mybatis使用配置文件连接数据库,解决硬编码问题。mybatis使用连接池创建和释放数据库连接。
mybatis框架的结构
API接口、数据处理层、基础支撑层
01、API接口
提供给外部使用的结构API
02、数据处理层
负责具体的SQL查找、SQL解析和执行结果映射处理等
03、基础支撑层
负责基础的功能支撑,为上层的数据处理层提供最基础的支撑
准备工作
使用mybatis实现数据库增删改查
- 添加需要的jar包:MySQL连接、mybatis核心jar包
- 创建表,并创建实体类
- 添加环境配置文件(mybatis-config.xml)
⊙加载db.properties
⊙事务管理器:JDBC
⊙连接池:POOLED
⊙关联mapper映射文件
○ 添加约束文件
○添加SQL语句(由namespace+sqlId组成)
后附:mybatis-config.xml;mapper映射文件
DAO层开发
接口;接口实现类;测试类
DAO接口:定义抽象的增删改查方法
DAO接口实现类:通过工厂类对连接池的封装,获取SqlSession对象;并调用SqlSession中的增删改查方法,指定指定的SQL语句
测试类:对实现类中的方法进行测试
mybatis执行流程
实现增删改查
- 加载主配置文件到内存中
- 根据访问数据库的基本信息,创建工厂类
- 获取到SqlSession对象,然后执行指定的SQL语句
- 将mapper中的表达式#{}翻译,使用预编译对象为属性赋值
细节处理
主键、类型别名、日志管理、抽取工具类
- 自动获取主键
○ useGeneratedKeys: 是否要获取自动生成的主键
○ keyColumn: 表中的主键列
○ keyProperties: 主键列对应的属性
- 类型别名:便于查询
- 日志管理:能够将执行的SQL全部打印在控制台中,方便观察SQL的相关问题
- 抽取mybatis工具类:减少代码重复
根据访问数据库的基本信息,创建工厂类;获取到SqlSession对象;以及资源的关闭,会重复多次,可以抽取到工具类中
附:
mybatis-config.xml
mapper映射文件
END