瑞蜀黍

导航

 

引言

现有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+绑定的参数===实现接口中的方法。

环境搭建

  1. 导入jar。

mybatis资料目录结构:

1. 导入mybatis的jar
2. 导入oracle的驱动jar
3. 导入mybatis依赖lib的jar。
  1. 引入配置文件:
1. mybatis-config.xml(连接数据库相关的参数)
	driverClassName 驱动类名   oracle.jdbc.OracleDriver
	url						  jdbc:oracle:thin:@localhost:1521:xe
	username				  hr
	password				  hr
	连接池(POOLED)-------------配置连接池
2. XxxMapper.xml(相当于dao的实现类)
  1. 初始化配置

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语中绑定参数: #{属性名}

  1. 注册管理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. 调用方法测试。

posted on 2020-05-27 15:15  瑞蜀黍  阅读(98)  评论(0)    收藏  举报