码迷,mamicode.com
首页 > 数据库 > 详细

MyBatisUtil.java.工具类,连接数据库库

时间:2016-06-03 22:44:38      阅读:433      评论:0      收藏:0      [点我收藏+]

标签:

可以在每一个项目里直接使用

 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 }

 

MyBatisUtil.java.工具类,连接数据库库

标签:

原文地址:http://www.cnblogs.com/jimorulang/p/5557725.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!