package com.js.ai.modules.pointwall.interfac;
import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
/*工具类MyBatisUtils,用双检锁简单的实现了一个线程安全的工具类。核心代码在最内层的if判断中。
* 由于配置文件在类路径上,所以我们只需要指定文件名即可。这里用到了MyBatis提供的Resources工具类,
* 创建一个输入流,然后交给SqlSessionFactoryBuilder来创建一个SqlSessionFactory。*/
public abstract class MyBatisUtils {
private static volatile SqlSessionFactory sqlSessionFactory;
public static final String MyBatisConfigLocation = "configuration.xml";
public static SqlSessionFactory getSqlSessionFactory() throws IOException{
if(sqlSessionFactory==null){
synchronized (MyBatisUtils.class) {
if(sqlSessionFactory==null){
InputStream inputStream=Resources.getResourceAsStream(MyBatisConfigLocation);
sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
inputStream.close();
}
}
}
return sqlSessionFactory;
}
}

  

工具类MyBatisUtils创建SqlSessionFactory的更多相关文章

  1. php简单实用的操作文件工具类(创建、移动、复制、删除)

    php简单实用好用的文件及文件夹复制函数和工具类(创建.移动.复制.删除) function recurse_copy($src,$dst) {  // 原目录,复制到的目录 $dir = opend ...

  2. 快速创建SpringBoot2.x应用之工具类自动创建web应用、SpringBoot2.x的依赖默认Maven版本

    快速创建SpringBoot2.x应用之工具类自动创建web应用简介:使用构建工具自动生成项目基本架构 1.工具自动创建:http://start.spring.io/ 2.访问地址:http://l ...

  3. SSM-MyBatis-10:Mybatis中SqlSession的getMapper()和简单的工具类MyBatisUtils

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- getMapper的作用,获取到接口,直接通过点的方式调用方法,以免直接手打的方式写错方法名,(强类型的方式) ...

  4. MyBatis工厂工具类 MyBatisUtils

    import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apach ...

  5. Mybatis通过工具类根据用户名查找用户列表

    抽取SqlSessionFactoryUtils工具类,共享SqlSessionFactory创建过程 /** * SqlSessionFactory工具类 * @author:Mr.Tan * @C ...

  6. Collections工具类的使用

    创建实体类 public class News implements Comparable { private int id; //新闻编号 private String title; //新闻标题 ...

  7. 【Unity】工具类系列教程—— 代码自动化生成!

    转载自:https://zhuanlan.zhihu.com/p/30716595?utm_medium=social&utm_source=qq [为什么要做自动化工具] 工具类的创建是为了 ...

  8. 阶段3 1.Mybatis_03.自定义Mybatis框架_4.自定义mybatis的编码-解析XML的工具类介绍

    导入xml操作的类和用到的相关包 创建util包,然后把提供好的XMLConfigBuilder.java文件复制3过来 复制过来,里面用到了很多dom4j的东西 打开pom.xml 输入depend ...

  9. MyBatis sqlsession 简化 使用工具类创建

    2019-04-09 @Test public void Test() throws Exception { // 1.读取配置文件 String resource = "mybatis-c ...

随机推荐

  1. 桔子桑Blog(小程序)V 0.4

    这两天对这个个人博客小程序的UI又作了一些补充,目前看来,小程序的主要功能如下: 1.博客/日常栏目的导航切换 为了避免两个模块的UI上的过于单一,我将两个模块的列表页作了区分: 边距是自适应的(针对 ...

  2. 怎么样在python 3.6里安装tensorflow?

    首先要下载python3.6: https://www.python.org/downloads/release/python-361/ 接着下载: numpy-1.13.0-cp36-none-wi ...

  3. Java调用本地方法又是怎么一回事

    JNI JNI即Java Native Interface,它能在Java层实现对本地方法的调用,一般本地的实现语言主要是C/C++,其实从虚拟机层面来看JNI挺好理解,JVM主要使用C/C++ 和少 ...

  4. matlab load

    参考文献:http://jingyan.baidu.com/article/fec4bce2257963f2618d8bfa.html 对应save,load 命令更加简单. load的方式有三种: ...

  5. js之敏感词过滤

    HTML <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <titl ...

  6. HDU3833 YY's new problem 卡时间第一题

    Given a permutation P of 1 to N, YY wants to know whether there exists such three elements P[i 1], P ...

  7. hiho 1612

    emmmmm?A不了?90分是什么鬼 #include<cstdio> #include<cstdlib> #include<vector> #include< ...

  8. idea Java spring 入门 demo

    根据这个 来实现 理解 https://www.cnblogs.com/xing901022/p/3963962.html 这里没有说如何导入包,现在我们用 idea 来实现 新建项目结构后 RUN ...

  9. iOS 信号量解决-网络异步请求的数据同步返回问题

    有那么一个场景如下 +PayWithBlock:(NSString*(^)(NSString *message)) block; 如果 block 返回是同步的那是没有问题的,但是如果block 内容 ...

  10. 重温CLR(十四) 可空类型

    我们知道,一个值类型的变量永远不可能为null.它总是包含值类型本身.遗憾的是,这在某些情况下会成为问题.例如,设计一个数据库时,可将一个列定义成为一个32位的整数,并映射到FCL的Int32数据类型 ...