在并发环境下,如何实现SqlSession的自动开启和关闭成为了一个长尾词?

2026-04-15 08:4010阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计227个文字,预计阅读时间需要1分钟。

在并发环境下,如何实现SqlSession的自动开启和关闭成为了一个长尾词?

javapackage org.jxnd.tool;

import java.io.IOException;import java.io.InputStream;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;

DBTool.java

package org.jxnd.tool; import java.io.IOException; import java.io.InputStream; 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 DBtools { private static SqlSessionFactory sqlSessionFactory; private static final String resource = "mybatis.xml"; private static ThreadLocal tl = new ThreadLocal (); static{ try { InputStream inputStream = Resources.getResourceAsStream(resource); sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } catch (IOException e) { e.printStackTrace(); } } //SqlSession不能使用单例,sqlSessionFactory可以使用单例 public static SqlSession getSqlSession(){ //从本地线程为获取一个绑定的sqlSession资源 SqlSession sqlSession = tl.get(); if(sqlSession == null){ sqlSession = sqlSessionFactory.openSession(); //将此sqlSession设到本地线程中 tl.set(sqlSession); } return sqlSession; } //关闭sqlSession资源 public static void closeSqlSession(){ SqlSession sqlSession = tl.get(); if(sqlSession != null){ tl.set(null); sqlSession.close(); } } //sqlSession提交 public static void commit(){ SqlSession sqlSession = tl.get(); if(sqlSession != null){ tl.set(null); sqlSession.commit(); } } //sqlSession回滚 public static void rollback(){ SqlSession sqlSession = tl.get(); if(sqlSession != null){ tl.set(null); sqlSession.rollback(); } } } 在本地线程为每一个SqlSession绑定一个资源,避免系统的堆积爆炸。

在并发环境下,如何实现SqlSession的自动开启和关闭成为了一个长尾词?
标签:DBTo

本文共计227个文字,预计阅读时间需要1分钟。

在并发环境下,如何实现SqlSession的自动开启和关闭成为了一个长尾词?

javapackage org.jxnd.tool;

import java.io.IOException;import java.io.InputStream;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;

DBTool.java

package org.jxnd.tool; import java.io.IOException; import java.io.InputStream; 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 DBtools { private static SqlSessionFactory sqlSessionFactory; private static final String resource = "mybatis.xml"; private static ThreadLocal tl = new ThreadLocal (); static{ try { InputStream inputStream = Resources.getResourceAsStream(resource); sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } catch (IOException e) { e.printStackTrace(); } } //SqlSession不能使用单例,sqlSessionFactory可以使用单例 public static SqlSession getSqlSession(){ //从本地线程为获取一个绑定的sqlSession资源 SqlSession sqlSession = tl.get(); if(sqlSession == null){ sqlSession = sqlSessionFactory.openSession(); //将此sqlSession设到本地线程中 tl.set(sqlSession); } return sqlSession; } //关闭sqlSession资源 public static void closeSqlSession(){ SqlSession sqlSession = tl.get(); if(sqlSession != null){ tl.set(null); sqlSession.close(); } } //sqlSession提交 public static void commit(){ SqlSession sqlSession = tl.get(); if(sqlSession != null){ tl.set(null); sqlSession.commit(); } } //sqlSession回滚 public static void rollback(){ SqlSession sqlSession = tl.get(); if(sqlSession != null){ tl.set(null); sqlSession.rollback(); } } } 在本地线程为每一个SqlSession绑定一个资源,避免系统的堆积爆炸。

在并发环境下,如何实现SqlSession的自动开启和关闭成为了一个长尾词?
标签:DBTo