MyBatis最成功的3点:
链接
https://github.com/mybatis/mybatis-3/releases
MyBatis工程包及其依赖包
使用MyBatis首先使用配置或者代码去生产SqlSessionFactory
MyBatis提供了构造器SqlSEssionFactoryBuilder
SqlSessionFactory是一个借口,在MaBatis中存在两个实现类
每个基于MyBatis的因公都是以一个SqlSessionFactory的实例为中心的,而SqlSessionFactory唯一的作用就是生产MyBatis的核心接口对象SqlSession,所以其责任唯一
MyBatis的XML分为两类:
mybatis-config.xml描述:
有了mybatis-config.xml文件,就可以用一段很简短的代码来生成SqlSessionFactory了
SqlSessionFactory sqlSessionFactory = null;
String resource = 'mybatis-conflg.xml';
InputStream inputStream;
try {
inputStream = resources.getResourceAsStrteam(resource);
SqlSEssionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
以上代码中,首先读取mybatis-config.xml,然后通过SqlSessionFactoryBuilder的Builder方法去创建SqlSessionFactory
不推荐,略
SqlSession是核心接口,作用类似于一个JDBC中的Connection对象,代表着一个连接资源的启用,作用有3个:
//定义sqlSession
SqlSession sqlSession = null;
try {
//打开sqlSession会话
sqlSession = SqlSessionFactory.openSession();
sqlSession.commit(); //提交事务
} catch (Exception ex) {
sqlSession.rollback(); //回滚事务
} finally {
//在finally语句中确保资源被顺利关闭
if (sqlSession != null) {
//不关闭资源,瞬间爆炸
sqlSession.close();
}
}
映射器是MyBatis中最重要、最复杂的组件
负责配置以下内容:
用XML定义映射器分为两部分:接口和XML
XML内容:
注解和XML方式同时定义时,XML方式将覆盖掉注解方式,推荐使用XML方式
Role rle = (Role) sqlSession.selectOne("com.ssm.mapper.RoleMapper.getRole", 1L);
也可以
Role role = (Role) sqlSession.selectOne("getRole", 1L);
RoleMapper roleMaper = sqlSession.getMapper(RoleMapper.class);
Role role = roleMapper.getRole(1L);
使用Mapper接口变成已成为主流,推荐采用SqlSession获取Mapper的方式
只能存在于创建SqlSessionFactory的方法中,不要让其长期存在
SqlSessionFactory的生命周期存在于整个Mybatis的应用之中
一般采用单例模式
存活于一个业务请求中