一、Mybatis的引言
1、Mybatis框架概念:是数据库持久层的框架,对数据库的访问和操作。Mybatis对JDBC的封装,Mybatis替换JDBC开发,解决DAO中的通用问题。
2、JDBC开发DAO的缺点:
3、Mybatis的优点
1)自动的进行ORM,减少冗余代码
2)有缓存机制,提高软件的效率
3)Mybatis提供动态sql,减少DAO方法的开发(select)
4、Mybatis的开发原理
二、第一Mybatis程序
1、搭建Mybatis环境
a、导入jar包
Mybatis的核心jar包:mybatis-3.2.2.jar
数据的驱动jar:ojdbc5.jar
做日志记录:log4j.jar
commons-logging-1.1.3.jar
b、引入配置文件
mybatis-config.xml:配置Mybatis运行环境
放置位置:随意,放在src目录
mapper文件:DAO实现的方法,通过mapper创建DAO
放置位置:随意,放在dao包下
log4j.properties:【可选】打印日志
放置位置:src目录
c、初始化参数配置
在mybatis-config.xml中配置mybatis的运行环境
2、Mybatis的核心API介绍
1)Resources:获得mybatis-config.xml配置文件
2)SqlSession:
作用一:获得DAO的实现类
作用二:内部封装一个Connection,一个SqlSession和一个Connection对象一一对应
作用三:可以事务控制
commit();rollback();
3)SqlSessionFactory:创建SqlSession,重量级
3、Mybatis替换JDBC开发DAO的步骤
1)建表
2)实体
3)DAO 的接口
4)Mybatis实现DAO的接口
5)注册mapper文件
6)测试
三、单表的基本操作(一个参数)
1、查询所有
模糊查询
2、删除
注意:Mybatis做数据库的DML操作必须进行事务控制(Mybatis的事务默认是回滚)
sqlSession.commit();/sqlSession.rollback()
3、修改
4、添加
使用序列:
insert into t_user values(seq_user.nextval,'yyy','999999')
mysql数据库没有序列:
<insert id="insert" parameterType="com.ibs.api.perf.bean.PerfAmmeter" useGeneratedKeys="true" keyProperty="id">
四、MybatisUtil的封装(参考MybatisUtil.java)
1、作用:提高代码的服用,提高程序的维护
2、service:SqlSession---DAO+事务控制
dao:调用DAO的方法完成业务
事务控制:SqlSession
获得sqlSession的方法
public static SqlSession getSqlSession(){}
3、MybatisUtil工具类封装的原则
1)读取配置文件的操作放在静态代码块中
2)sqlSession和Connection一一对应,对SqlSession进行线程绑定
3)SqlSessionFactory是一个重量级的,只需要创建一次,把SqlSessionFactory定义为静态成员变量
4、封装关闭SQLSession的方法:把关闭的SQLSession从线程局部变量中移除掉
public static void closeSession(){}