1. mybatis概述
MyBatis 是一款优秀的持久层框架
它支持定制化 SQL、存储过程以及高级映射
一款半自动ORM(关系对象映射)框架
2. mybatis的使用(XML配置文件)
2.1 配置环境
搭建数据库,
新建项目,
maven引入mybatis的依赖
2.1 编写一个mybatis工具类
工具类包含:
一个类变量
private static SqlSessionFactory sqlSessionFactory;
静态代码块,为类变量赋值
static {
try{
InputStream inputStream = Resources.getResourceAsStream("放在类路径下的mybatis配置文件名");
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
}
}
静态方法,用来获取sqlSession
public static SqlSession getSqlSession(){
return sqlSessionFactory.openSession();
}
2.2 编写核心配置文件
包含以下内容,加粗是必须的
configuration(配置)
properties(属性)
settings(设置)
typeAliases(类型别名)
typeHandlers(类型处理器)
objectFactory(对象工厂)
plugins(插件)
environments(环境配置)
environment(环境变量)
transactionManager(事务管理器)
dataSource(数据源)
databaseIdProvider(数据库厂商标识)
mappers(映射器)
2.3 分页插件
引入 pageHapler依赖
配置声明
编写service实现类 注意:只有紧跟着PageHelper.startPage(pageNum,pageSize)的sql语句才被pagehelper起作用
例如
public List<User> selectAll(int pageNum,int pageSize) {
PageHelper.startPage(pageNum,pageSize);
List<User> users = userMapper.selectAll();
PageInfo<User> pageInfo = new PageInfo<>(users);
return pageInfo.getList();
}
2.4 编写Mapper文件
定义 mapper.namespace
定义resultMap
定义sql语句,id与接口方法名一致,参数和接口方法参数一致,返回值和接口一致
3.mybatis的使用(基于注解)
@slect sql语句直接写在Mapper接口对应的方法名上
@resultMap 写在方法上
mybatis配置文件中,mappers标签下,使用包标签,指向mapper包
配置文件的注解在spring和springboot中
4.mybatis的事务
在mybatis中提供了两种事务管理机制:
第一种:JDBC事务管理器
自己采用JDBC的原生代码去管理
conn.setAutoCommit(false); 开启事务。
…业务处理…
conn.commit(); 手动提交事务
使用JDBC事务管理器的话,底层创建的事务管理器对象:JdbcTransaction对象。
第二种:MANAGED事务管理器
mybatis不再负责事务的管理了。事务管理交给其它容器来负责。例如:spring。
我不管事务了,你来负责吧。
对于我们当前的单纯的只有mybatis的情况下,如果配置为:MANAGED
那么事务这块是没人管的。没有人管理事务表示事务压根没有开启。没有人管理事务就是没有事务
5.Mybatis集成日志
mybatis常见的集成的日志组件有哪些呢?
SLF4J(沙拉风):沙拉风是一个日志标准,其中有一个框架叫做logback,它实现了沙拉风规范。
LOG4J
LOG4J2
STDOUT_LOGGING 这是标准日志,mybatis已经实现了,只需要开启即可
…
注意:log4j log4j2 logback都是同一个作者开发的。
集成logback日志框架。
logback日志框架实现了slf4j标准。(沙拉风:日志门面。日志标准。)
第一步:引入logback的依赖。
第二步:引入logback所必须的xml配置文件。
这个配置文件的名字必须叫做:logback.xml或者logback-test.xml,不能是其它的名字。
这个配置文件必须放到类的根路径下。不能是其他位置。
主要配置日志输出相关的级别以及日志具体的格式。