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