Mybatis学习总结二——Mybatis的核心对象

本文主要介绍了Mybatis的两大核心对象——SqlSessionFactory和SqlSession,详细阐述了它们的作用和特点。SqlSessionFactory作为会话工厂,通常采用单例模式进行管理。而SqlSession是线程不安全的,适合在方法内部声明为局部变量。此外,还探讨了全局配置文件SqlMapConfig.xml中的配置内容,包括属性、设置、类型别名等关键配置项。

一、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 中配置的内容和顺序如下:

  1. properties(属性)
  2. settings(全局配置参数)
  3. typeAliases(类型别名)
  4. typeHandlers(类型处理器)
  5. objectFactory(对象工厂)
  6. plugins(插件)
  7. environments(环境集合属性对象)
  8. environment(环境子属性对象) transactionManager(事务管理) dataSource(数据源)
  9. 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>

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值