工具类MyBatisUtils创建SqlSessionFactory

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;
	}
}

  

时间: 2024-10-08 11:13:08

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

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

php简单实用好用的文件及文件夹复制函数和工具类(创建.移动.复制.删除) function recurse_copy($src,$dst) {  // 原目录,复制到的目录 $dir = opendir($src); @mkdir($dst); while(false !== ( $file = readdir($dir)) ) { if (( $file != '.' ) && ( $file != '..' )) { if ( is_dir($src . '/' . $file) )

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

------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- getMapper的作用,获取到接口,直接通过点的方式调用方法,以免直接手打的方式写错方法名,(强类型的方式) 例子: IBookDAO mapper = session.getMapper(IBookDAO.class); List<Book> list = mapper.findAllBook(); 那个工具类,主要是获取SqlSession对象,写法 package cn.dawn.util; im

MyBatis工厂工具类 MyBatisUtils

import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class MyBatisUtils { private static SqlSessionFa

Java 缩放图片工具类,创建缩略图、伸缩图片比例

http://my.oschina.net/backtract/blog/403828 Thumbnailator的简介和使用范例

Collections工具类的使用

创建实体类 public class News implements Comparable { private int id; //新闻编号 private String title; //新闻标题 @Override public String toString() { return "新闻 [编号=" + id + ", 标题=" + title + "]"; } public News() { //无参构造 super(); } publi

浅谈:Hibernate中HibernateUtil工具类

首先我们需要知道为什么咱们要创建Hibernate工具类 一些固定而且经常使用的步骤我们期望做成一个工具类,以后再需要重复步骤时咱们仅需要引用此工具类就可以,从而避免了一直创建重复代码.比如加载数据库的驱动等,这里Hibernate中我们每个主程序都需要加载hibernate.cfg.xml文件.创建SessionFactory对象.创建Session对象.关闭session.这些都是固定化的步骤,因此我们将它们写在工具类HibernateUtil中,以后咱们直接引用此文件创建各对象即可,大大减

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

转载自:https://zhuanlan.zhihu.com/p/30716595?utm_medium=social&utm_source=qq [为什么要做自动化工具] 工具类的创建是为了解决实际问题或者优化既有流程,我们来先看看一些项目里面经常遇到的问题. 程序代码有很多时候类是相似的,因此新建一个功能的时候你会直接复制了之前"相似"的代码块,然后删除掉无用的逻辑功能,但是有时候会出现漏网之鱼. 开完会,策划发过来一个功能案子,UI相关的界面非常的多,你费劲拼完了UI,写

java===数组工具类创建,并使用eclipse导出说明文档.html

package cn.china; //import java.util.Arrays; //import java.util.Scanner; /** * 数组工具类,并且类内部方法都为静态方法,不提供初始化对象调用!!! * 包含数组排序.最值.查找等方法 * @author 王大侠 * @version V1.0*/ public class ArrayTool { private ArrayTool() { } /** * 数组选择排序 * @param arr 传入一个数组用于验证程序

获取全局上下文(getApplicationContext)_创建Shared Preference工具类_实现自动登录

===========================获取全局上下文(getApplicationContext)======================== 1.在com.example.autologin.myapplication包中创建Myapplication extends Application 代码: 1 public class Myapplication extends Application 2 { 3 private static Context context; 4