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 }
  • 相关阅读:
    VScode+phpStudy搭建php代码调试环境
    bluekeep漏洞(CVE-2019-0708)利用
    bugku论剑场web解题记录
    upload-labs通关集
    攻防世界web新手区
    Vulnhub-XXE靶机学习
    Volatility取证使用笔记
    攻防世界WEB新手练习
    攻防世界MISC新手练习
    攻防世界CRYPTO新手练习
  • 原文地址:https://www.cnblogs.com/jimorulang/p/5557725.html
Copyright © 2011-2022 走看看