SqlSessionFactory一旦被创建,应该在应用程序执行期间都存在,不要重复创建多次,建议使用单例模式。SqlSession的实例不能被共享,也是线程不安全的。
创建方法如下:
public class SqlSessionFactoryUtil{
//创建SqlSessionFactory
private volatile static SqlsessionFactory sqlSessionFactory = null;
public static SqlSessionFactory getSqlSessionFactory(){
if(sqlSessionFactory==null){
synchronized(sqlSessionFactory.class){
if(sqlSessionFactory==null){
try {
Reader reader = Resources.getResourceAsReader(mybatis-xml);
sqlSessionFactory =new SqlSessionFactoryBuilder().build(reader);
}catch (IOException e) {
e.printStackTrace();
}
}
}
}
return sqlSessionFactory;
}
//创建SqlSession
SqlSession sqlSession = null;
try {
sqlSession = sqlSessionFactory.openSession();
sqlSession.insert("cn.jarjar.dao.BlogMapper.insertBlog", blog);
sqlSession.commit(true)}
catch (Exception e) {
e.printStackTrace();
sqlSession.rollback(true);
}finally {
sqlSession.close();
}
}