一、Mybatis的核心对象
两大核心对象:SqlSessionFactory 和 SqlSession
1) SqlSessionFactory:会话工厂,由全局配置文件加载,作用是创建会话。
特点:一旦创建 SqlSessionFactory 类的实例,该实例在应用程序执行期间都存在,根本不需要每一次操作数据库时都重新创建它,所以应用它的最佳方式就是写一个单例模式,或使用 Spring 框架来实现单例模式对 SqlSessionFactory 对象进行的管理。
最好创建一个单例的会话工厂类,每次使用该类创建SqlSession,即为单例,同一工厂
package com.szy.util;
import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
/**
* 会话工厂 单例模式
*/
public class SqlSessionFactoryUtil {
private static SqlSessionFactory sqlSessionFactory = null;
//静态代码块,只加载一次
static{
try {
//1.加载mybatis的全局配置文件 io的形式读取
InputStream in = Resources.getResourceAsStream("mybatis.xml");
//2.获取回话工厂,读取全局配置文件获取
sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 方法描述:通过这个方法 获取到会话工厂
* @return
*/
public static SqlSessionFactory getFactory(){
return sqlSessionFactory;
}
}
2)SqlSession:会话
由会话工程创建,用于操作数据库
特点:SqlSession是线程不安全的。类似servlet。是单一的实例。
解决方案:把会话声明成 方法内部的 局部变量,即每次使用前都需要创建即可解决
二、全局配置文件中的配置内容
SqlMapConfig.xml 中配置的内容和顺序如下:
- properties(属性)
- settings(全局配置参数)
- typeAliases(类型别名)
- typeHandlers(类型处理器)
- objectFactory(对象工厂)
- plugins(插件)
- environments(环境集合属性对象)
- environment(环境子属性对象) transactionManager(事务管理) dataSource(数据源)
- mappers(映射器)
1、properties(属性)(可以将常修改的内容【例:连接数据库】单独放一个文件中,使用properties读取该文件)
<!-- 读取资源文件 -->
<properties resource="db.properties"></properties>
2、
3、typeAliases(类型别名)
<!-- 给对象起别名 -->
<typeAliases>
<!-- type:给谁起别名 alias:别名 -->
<!-- <typeAlias type="com.szy.pojo.User" alias="user"/> -->
<!-- 批量起别名(包扫描)(常用)name:给哪个包下的类起别名 别名是:类名(首字母大小写都可以)-->
<package name="com.szy.pojo" />
</typeAliases>
本文主要介绍了Mybatis的两大核心对象——SqlSessionFactory和SqlSession,详细阐述了它们的作用和特点。SqlSessionFactory作为会话工厂,通常采用单例模式进行管理。而SqlSession是线程不安全的,适合在方法内部声明为局部变量。此外,还探讨了全局配置文件SqlMapConfig.xml中的配置内容,包括属性、设置、类型别名等关键配置项。
809

被折叠的 条评论
为什么被折叠?



