mybatis是如何创建SqlSessionFactory的呢,请看下面例子。
package com.mybatis3.util;
import java.io.*;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.*;
/**
* 读取myabtis-config.xml配置文件,创建SqlSessionFactory对象,
* 其中myabtis-config.xml放在项目classpath路径下的resources资源文件夹目录下
*/
public class MyBatisSqlSessionFactory {
private static SqlSessionFactory sqlSessionFactory;
public static SqlSessionFactory getSqlSessionFactory() {
if (sqlSessionFactory == null) {
InputStream inputStream;
try {
inputStream = Resources.
getResourceAsStream("mybatis-config.xml");
sqlSessionFactory = new
SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
throw new RuntimeException(e.getCause());
}
}
return sqlSessionFactory;
}
/**
* 创建一个SqlSession对象,调用getMapper(接口名)方法拿到接口对象
* 每个请求对应一个SqlSession,它不是线程安全的,是不能共享的
* @return
*/
public static SqlSession openSession() {
return getSqlSessionFactory().openSession();
}
}
完整项目示例请移步至 mybatis入门示例