zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    ubuntu安装sublime无工具栏解决办法
    ubuntu安装eclipse无工具栏解决办法
    数据库设计
    cglib代理
    多线程简单实例(3)线程池
    多线程简单实例(2)生产者和消费者
    STL之迭代器(iterator)
    STL之vector
    “由于这台计算机没有终端服务器客户端访问许可证”解决方案
    STL之容器(containers) 简介
  • 原文地址:https://www.cnblogs.com/jimorulang/p/5557725.html
Copyright © 2011-2022 走看看