单例模式是为了节省内存空间,提高利用率,效果体现是某个调用的函数的哈希hashcode()不变。
1、单例模式:
①定义一个static静态变量
②在这个变量下有一个static 的静态方法-----在static方法里面实例化
static块:一次使用的时候实例化,以后使用不再实例化
③最后来个public static返回
代码如下:
package org.sie.utils;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
/**
* 使用单例模式实现SqlSessionFactory的内存里的单个实例,静态原理
*/
public class MyBatisTools {
//①定义一个static静态变量
private static SqlSessionFactory sqlSessionFactory=null;
//用Static块②在这个变量下有一个static 的静态方法
static {
try {
InputStream inputStream= Resources.getResourceAsStream("config/SQLMapConfig.xml");
sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
//③最后来个public static返回
public static SqlSessionFactory getSqlSessionFactory(){
return sqlSessionFactory;
}
}