目录
1.MyBatis 安装
1.1 下载 mybatis-x.x.x.jar 文件并置于 classpath 中即可。
1.2 若是maven项目,在pom.xml文件中引入dependency代码即可。
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>x.x.x</version>
</dependency>
2.MyBatis中常见对象及其工作基本过程
2.1 SqlSessionFactory
2.1.1 SqlSessionFactory:每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为中心的。SqlSessionFactory是单个数据库映射关系经过编译后的内存镜像,SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。而SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先定制的 Configuration 的实例构建出 SqlSessionFactory 的实例。
2.1.2 从xml中构建SqlSessionFactory:
//读取mybatis-config.xml配置文件
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
//初始化mybatis,创建SqlSessionFactory实例
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilerr().build(inputStream);
2.1.3 XML 配置文件:mybatis-config.xml,它是MyBatis的核心配置,包含了获取数据库连接实例的数据源(DataSource)和决定事务作用域和控制方式的事务管理器(TransactionManager),如下为其简单示例:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="org/mybatis/demo/SysUserMapper.xml"/>
</mappers>
</configuration>
2.2 SqlSession
2.2.1 SqlSession:MyBatis执行持久化操作的对象,SqlSessionFactory是SqlSession的工厂,所以SqlSession由SqlSessionFactory创建,SqlSession 完全包含了面向数据库执行 SQL 命令所需的所有方法。你可以通过 SqlSession 实例来直接执行已映射的 SQL 语句。
SqlSession session = sqlSessionFactory.openSession();
try {
SysUser sysUser= (SysUser) session.selectOne("org.mybatis.demo.SysUserMapper.selectSysUser", "Aaron");
} finally {
session.close();
}
2.3 Mapper XML映射文件
2.3.1 由上述可知,SqlSessionFactory创建了SqlSession对象,由SqlSession实例来直接执行已映射的 SQL 语句,MyBatis会根据mybatis-config.xml中的mapper映射器找到XML映射文件。简单的映射文件示例如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.mybatis.demo.SysUserMapper">
<select id="selecSysUser" resultType="SysUser">
select * from sys_user where name = #{name}
</select>
</mapper>
3.作用域(Scope)和生命周期
类名称 | SCOPE |
SqlSessionFactoryBuilder | method |
SqlSessionFactory | application |
SqlSession | request/method |
Mapper | method |