Mybatis是持久层框架,本文是学习过程中的笔记。
Mybatis-1-框架概述
1. 什么框架
1. 什么是框架
2. 框架解决的问题
3. 软件开发中分层的重要性
4.分层开发下的常见框架
5. Mybatis框架概述
2. JDBC编程的分析
1. JDBC开发回顾
开发步骤
- 加载驱动
- 获取数据库连接对象Connection
- 定义SQL语句
- 获取preparedStatement对象
- 设置参数
- 执行查询
- 封装结果集
2.jdbc问题分析
- 数据库链接创建、释放频繁造成系统资源浪费从而影响系统性能(线程池解决该问题)。
- Sql 语句在代码中硬编码,造成代码不易维护,实际应用 sql 变化的可能较大,sql 变动需要改变 java 代码。
- 使用 preparedStatement 向占有位符号传参数存在硬编码,因为 sql 语句的 where 条件不一定,可能 多也可能少,修改 sql 还要修改代码,系统不易维护。
3. Mybatis框架快速入门
开发步骤
- 下载Mybatis框架jar包、或者在maven工程中导入开发坐标
- 创建Maven工程,添加其他坐标
- 编写User实体类
- 编写持久层接口Dao
- 编写持久层接口的映射文件Dao.xml
- 编写SQLMapConfig.xml
- 编写测试类
- 注意:编写持久层映射文件也可以改为注解的方式,此时SqlMapConfig.xml的映射要改为该接口的全限定类名
4. 自定义Mybatis框架
知识点提要
工厂模式、构建者模式、代理模式,反射,自定义注解,注解的反射,xml解析,数据库元数据,元数据的反射等。
1. 流程分析
SqlMapConfig.xml
- 连接数据库信息
1
2
3
4
5
6
7<!--数据库连接信息-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/ee50"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>有以上信息,我们可以创建连接数据库的对象Connection。
- 映射配置文件
1
2
3<mappers>
<mapper class="top.tobing.dao.UserDao"/>
</mappers>1
2
3<mappers>
<mapper resource="top/tobing/dao/UserDao.xml"/>
</mappers>有以上信息,我们可以通过映射配置文件xml(或者注解的方式获取以下配置文件)
- SQL语句以及封装的结果类型
1
2
3
4
5<mapper namespace="com.itheima.dao.IUserDao">
<select id="findAll" resultType="com.itheima.domain.User">
select * from user
</select>
</mapper>有以上信息,我们可以得到执行的SQL语句,可以获取PreParedStatement对象,还得到了要返回封装结果类的全限定类名。
2. 前期准备
- 创建Maven工程
- 引入相关坐标
- 导入工具类(用于XML解析)
- 编写SQLMapConfig.xml
- 编写读取配置文件类
- 编写Mapper
- 编写Configuration配置类
- 编写实体类User