• 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 }
  • 相关阅读:
    缓存限定登录次数
    IntelliJ IDEA使用心得之基础篇
    HibernateTemplate#setMaxResults()的坑
    getHibernateTemplate() VS getSession()
    地区和语言的国际标准码
    CentOS6.5安装MySql5.5
    使用wkhtmltopdf实现HTML转PDF的解决方案
    Bootstrap分页插件:bootstrap-paginator
    Maven无法引入自定义构件依赖的解决方案
    Java与数据库类型对照表
  • 原文地址:https://www.cnblogs.com/jimorulang/p/5557725.html
Copyright © 2020-2023  润新知