MyBatisSqlSessionFactory.java 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. package cn.sagacloud.mybatis;
  2. import java.io.IOException;
  3. import java.io.InputStream;
  4. import org.apache.ibatis.io.Resources;
  5. import org.apache.ibatis.session.SqlSession;
  6. import org.apache.ibatis.session.SqlSessionFactory;
  7. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  8. public class MyBatisSqlSessionFactory {
  9. private MyBatisSqlSessionFactory(){}
  10. private static volatile SqlSessionFactory sqlSessionFactory = null;
  11. public static SqlSessionFactory getSqlSessionFactory(){
  12. if(sqlSessionFactory==null){
  13. InputStream inputStream;
  14. try {
  15. synchronized(MyBatisSqlSessionFactory.class) {
  16. if (sqlSessionFactory == null) {
  17. inputStream = Resources.getResourceAsStream("mybatis-config.xml");
  18. sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
  19. }
  20. }
  21. // sqlSessionFactory.getConfiguration().addMapper(UserMapper.class);
  22. // sqlSessionFactory.getConfiguration().addMapper(ManufacturerMapper.class);
  23. // sqlSessionFactory.getConfiguration().addMapper(BrandMapper.class);
  24. }
  25. catch(IOException e){
  26. System.out.println(e.getMessage());
  27. throw new RuntimeException(e.getCause());
  28. }
  29. }
  30. return sqlSessionFactory;
  31. }
  32. public static SqlSession openSession(){
  33. return getSqlSessionFactory().openSession();
  34. }
  35. }