目錄
1.MyBatis 安裝
2.MyBatis中常見對象及其工作基本過程
2.1 SqlSessionFactory
2.2 SqlSession
2.3 Mapper XML映射檔案
3.作用域(Scope)和生命周期
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 |