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 }
  • 相关阅读:
    小白学开发(iOS)OC_ 使用继承来扩充类(2015-08-07)
    UI组件之TextView及其子类(三)ToggleButton和Switch
    C++智能指针--shared_ptr
    HDU 1013 Digital Roots 题解
    对touch事件传递的简单理解
    【LeetCode-面试算法经典-Java实现】【096-Unique Binary Search Trees(唯一二叉搜索树)】
    Cocos2d-x 坐标系
    hdu1518 Square
    servlet3.0新特性
    OGNL表达式
  • 原文地址:https://www.cnblogs.com/jimorulang/p/5557725.html
Copyright © 2011-2022 走看看