在定义了一个全局变量了的值(不在方法里面,或者{}中,就是全局变量)
在局部中,不加类型,直接用全局变量 = 值 即可进行全局变量的初始化
package com.itheima.util;
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;
public class SqlSessionFactoryUtils {
// 这里创建一个全局的变量(工厂对象,然后在静态代码块中进行初始化值)
private static SqlSessionFactory sqlSessionFactory;
// 定义一个静态代码块,随着类加载,只调用一次,在这里也就工厂只创建一次对象
static {
// 2. 调用MyBatis完成查询
// 2.1 获取SqlSessionFactory对象 (去官网查,不要记 改路径即可)
try {
String resource = "mybatis-config.xml"; // 在resources目录的下面,直接写名字即可
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch ( Exception e) {
e.printStackTrace();
}
}
public static SqlSessionFactory getSqlSessionFactory() {
// 在方法中return出去,即可实现别的类一调用其方法,就得到改工厂对象
return sqlSessionFactory;
}
}