引言
现有JDBC代码的问题: 大量代码的冗余 1. 获得conn 2. 创建pstm 3. 绑定参数的方法 4. 发送参数,执行sql 5. 处理结果集 6. 处理异常

特点
介绍: 数据持久层框架(DAO将数据持久化到数据库),实现DAO层的代码。对JDBC代码的封装。
特点:
1. 封装通用功能,简化代码,提高开发效率(获得conn,绑定参数,发送sql,处理异常,处理结果集) 2. sql放在配置文件中,提高sql可维护性。 3. 自带连接池功能 4. 自带缓存(提高查询效率) [重点]
第一个MyBatis程序
核心编程思想
1. 书写DAO接口 2. 开发Mapper文件 SQL+绑定的参数===实现接口中的方法。
环境搭建
- 导入jar。
mybatis资料目录结构:
1. 导入mybatis的jar 2. 导入oracle的驱动jar 3. 导入mybatis依赖lib的jar。
- 引入配置文件:
1. mybatis-config.xml(连接数据库相关的参数) driverClassName 驱动类名 oracle.jdbc.OracleDriver url jdbc:oracle:thin:@localhost:1521:xe username hr password hr 连接池(POOLED)-------------配置连接池 2. XxxMapper.xml(相当于dao的实现类)
- 初始化配置
MyBatis实现DAO编码
需求: 使用MyBatis实现DAO的方式,添加一个person信息?
1. 写DAO接口 public interface PersonDAO{ void insert(Person person); } 2. 书写Mapper文件(DAO的实现类)[sql+参数] <insert id="实现接口的方法名" parameterType="参数中实体类型全类名"> insert into t_person values(seq_person.nextval,#{属性名},#{sex},#{age},#{mobile},#{address}) </insert> 属性: id: 实现的接口的方法名 parameterType: 参数类型(实体的全类名) sql语中绑定参数: #{属性名}
- 注册管理mapper文件[在mybatis-config中配置]
<mappers> <!-- 注册管理所有的mapper文件 --> <mapper resource="com/baizhi/demo1/PersonDAOImpl.xml"></mapper> </mappers> resource: mapper文件相对于src的路径。
MyBatis使用的API[重点]
目的:
使用DAO:
1. 获得PersonDAO的对象。
2. 调用personDAO的方法。
常用的类:
sqlSession:
1. 获得dao接口的实现类的对象。
XxxDAO dao = sqlSession.getMapper(接口.class);
2. 相当于connection.[提交事务 关闭close,回滚事务]
SqlSessionFactory
1. 获得sqlSession
SqlSession session = sqlSessionFactory.openSession();
2. 保存封装mybatis-config.xml配置文件。
SqlSessionFactoryBuilder: 读取配置文件
Resources: 获得读取配置文件的输入流。
步骤:
1. 获得mybatis-config的输入流
2. 读取mybatis-config的文件,构造成SqlSessionFactory
3. 通过SqlSEssionFactory获得SqlSession
4. 通过SqlSession获得DAO接口的对象
5. 调用方法测试。





浙公网安备 33010602011771号