MyBatisUtil.java.工具類,連接數據庫庫


可以在每一個項目里直接使用

 1 package com.yh.mb.dao;
 2 
 3 import java.io.Reader;
 4 
 5 import org.apache.ibatis.io.Resources;
 6 import org.apache.ibatis.session.SqlSession;
 7 import org.apache.ibatis.session.SqlSessionFactory;
 8 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
 9 /**
10  * mybatis連接數據庫的工具類
11  * @author Administrator
12  *
13  */
14 public class MyBatisUtil {
15     private MyBatisUtil(){
16     }
17     private static final String RESOURCE = "mybatis-config.xml";
18     private static SqlSessionFactory sqlSessionFactory = null;
19     private static ThreadLocal<SqlSession> threadLocal = new ThreadLocal<SqlSession>();
20     static {
21         Reader reader = null;
22         try {
23             reader = Resources.getResourceAsReader(RESOURCE);
24             SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
25             sqlSessionFactory = builder.build(reader);
26         } catch (Exception e1) {
27             e1.printStackTrace();
28             throw new ExceptionInInitializerError("初始化MyBatis錯誤,請�?��配置文件或數據庫");
29             
30         }
31     }
32     public static SqlSessionFactory getSqlSessionFactory(){
33         return sqlSessionFactory;
34     }
35     public static SqlSession getSession(){
36         //sessionTL的get()方法根據當前線程返回其對應的線程內部變量�?
37         //也就是我們需要的Session,多線程情況下共享數據庫鏈接是不安全的�?
38         //ThreadLocal保證了每個線程都有自己的Session�?
39         SqlSession session = threadLocal.get();
40         // 如果session為null,則打開�?��新的session
41         if (session == null){
42             session = (sqlSessionFactory !=null) ?sqlSessionFactory.openSession():null;
43             threadLocal.set(session); // 5
44         }
45         return session;
46     }
47     public static void closeSession(){
48         SqlSession session = (SqlSession) threadLocal.get(); // 2
49         threadLocal.set(null);
50         if (session !=null){
51             session.close();
52         }
53     }
54 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM