看过之前的蜕变系列文章,相信你对mybatis有了初步的认识。但是这些还不够,我们今天进一步来了解下mybatis的一些用法。
猿蜕变同样是一个原创系列文章,帮助你从一个普通的小白,开始掌握一些行业内通用的框架技术知识以及锻炼你对系统设计能力的提升,完成属于你的蜕变,更多精彩内容,敬请大家关注公主号猿人工厂,点击猿人养成获取!
我们第一个程序存在很多问题,每一次操作,都需要读取配置文件、初始化mybati框架。这样搞出来的程序上就一个字——渣!这让我想起了多年以前,某个小伙伴告诉我spring的正确使用一样,每次方法都让spring框架重新初始化了一次。哈哈,知道你也在看的,又是一波回忆杀。
在第一个mybatis程序中,获取SqlSession对象的方式也比较复杂,获取SqlSession对象的操作比较复杂,由于SqlSessionFactory本身就是用来管理SqlSession对象的,应用中一般情况下有一个就足够了!我们做一个小优化——使用单利模式来封装下,让一个SqlSessionFactory对象去管理SqlSession对象。
1.创建一个MyBatisUtil工具类:
package com.pz.route.util;
import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class MyBatisUtil {
private static SqlSessionFactory sqlSessionFactory;
static{
//读取主配置文件
InputStream input = null;
if (sqlSessionFactory == null) {
try {
input = Resources.getResourceAsStream("mybatis.xml");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
synchronized (MyBatisUtil.class) {
if (sqlSessionFactory == null){
sqlSessionFactory = new SqlSessionFactoryBuilder().build(input);
}
}
}
}