MyBatis中ThreadLocal

01 遇到的问题
–如果我们做一个请求时候多次使用sqlsession对象这样就会造成sqlsession 浪费,也就是资源浪费,效率也会降低
–我们需要达到的目的就是用户发出的一个请求中实现sqlsession的共享
–请求没有改变,线程就不会改变
–最终的目的就是在同一个线程中实现数据sqlsession的共享
02解决方案
ThreadLoacl: 作用 在同一个线程中实现数据(sqlsession)的共享
底层使用的map集合 map.put(key,value);
map.put(线程的ID,conn)

03代码实现

	public class DBUtil {  private   static SqlSessionFactory factory;  private  static ThreadLocal<SqlSession>  tl=new ThreadLocal<>();  static {  InputStream inputStream = null;  try {  //[1]解析myBatis.xml文件  inputStream = Resources.getResourceAsStream("mybatis.xml");  //[2]获得sqlsession工厂  factory=new SqlSessionFactoryBuilder().build(inputStream);  } catch (IOException e) {  e.printStackTrace();  }  }  //获得sqlsession对象  public  static SqlSession   getSqlSession(){  //获得ThreadLoacl中的sqlsession对象  SqlSession sqlSession = tl.get();  if(sqlSession==null){  sqlSession = factory.openSession(true);  //把创建好的对象放到ThreadLoacl  tl.set(sqlSession);  }  return  tl.get();  }  //关闭sqlsession  public  static    void     closeAll(){  SqlSession sqlSession = tl.get();  if(sqlSession!=null){  sqlSession.close();  }  tl.set(null);  }  }  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/325055.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

洛谷P1434-滑雪【线性化Dp】

Description Michael喜欢滑雪百这并不奇怪&#xff0c; 因为滑雪的确很刺激。可是为了获得速度&#xff0c;滑的区域必须向下倾斜&#xff0c;而且当你滑到坡底&#xff0c;你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组…

JavaFX UI控件教程(十七)之Slider

翻译自 Slider 在本章中&#xff0c;您将学习如何在JavaFX应用程序中使用滑块来显示和与一系列数值进行交互。 该Slider控件由一个轨道和一个可拖动的拇指组成。它还可以包括刻度线和刻度标签&#xff0c;用于指示范围的数值。图16-1显示了一个典型的滑块并指出了它的主要元…

Photoshop中将图片拖不进软件的编辑区的解决方法,超详细

今天在学习ps的过程中&#xff0c;发现我的ps怎么和人家老师的不一样&#xff0c;怎么不一样呢&#xff1f;人家老师的ps5中&#xff0c;鼠标可以直接拖到ps的编辑栏中&#xff0c;可是我的死活拖不进去。怎么办&#xff1f;怎么办&#xff1f;经过自己瞎鼓捣和上网查&#xff…

IdentityServer4 指定角色授权(Authorize(Roles=amp;quot;adminamp;quot;))

1. 业务场景 IdentityServer4 授权配置Client中的AllowedScopes&#xff0c;设置的是具体的 API 站点名字&#xff0c;也就是使用方设置的ApiName&#xff0c;示例代码&#xff1a; //授权中心配置new Client{ ClientId "client_id_1", AllowedGrantTypes G…

MyBatis中的注解

代码实现 1. Select("select * from student") 2. List<Student> selectAll(); 3. 4. Select("select * from student where sid#{param1}") 5. Student selectOne(int id); 6. 7. Insert("insert into student value…

ssl1463-公共子串【各种dp之1】

前言&#xff1a; 开始水做练习题了&#xff0c;反正难度还是比较大的QAQ。比较dp。emmmmmmmmmmmmmmmmmmm 题目 大概就是给出两个字符串&#xff0c;蓝后让你求出他们相同的一串&#xff08;but可以不连续 不连续还叫子串&#xff1f;&#xff09;的长度。 输入 abcfbc abf…

JavaFX UI控件教程(十八)之Progress Bar和Progress Indicator

翻译自 Progress Bar and Progress Indicator 在本章中&#xff0c;您将了解进度指示器和进度条&#xff0c;以及可视化JavaFX应用程序中任何操作进度的UI控件。 本ProgressIndicator类及其直接子类ProgressBar所提供的功能&#xff0c;以表明特定的任务是处理和检测是如何工…

数组的初始化与默认值

初始化 一维数组 数组一旦初始化完成&#xff0c;其长度就确定了 int[] ids;//声明//1.1 静态初始化:数组的初始化和数组元素的赋值操作同时进行ids new int[]{1001,1002,1003,1004};//1.2动态初始化:数组的初始化和数组元素的赋值操作分开进行String[] names new String[5…

你不知道ADo.Net中操作数据库的步骤【超详细整理】

1.先创建数据库连接字符串&#xff1a; string strcon "Data Source.;Initial CatalogschoolDB;Integrated SecurityTrue";2.创建SqlConnection对象&#xff0c;需要注意的是SqlConnection对象在using System.Data.SqlClient;命名空间中。 SqlConnection conn new…

OJ4007-计算字符串距离【各种dp之2】

题目 大概&#xff08;又大概&#xff1f;&#xff09;就是输入t组数据&#xff0c;每组数据输入两个字符串&#xff08;又是两个字符串&#xff1f;&#xff09; 然后我们可以进行以下操作 1.修改一个字符&#xff08;如把“a”替换为“b”&#xff09; 2.删除一个字符&…

C# 7.2和8.0路线图

C# 7.2和8.0的许多新功能已经列入了计划&#xff0c;其中包括空引用类型和有限形式的多重继承。 只读引用和只读结构体 [7.2原型] 首先提到的是只读引用和结构体。简单来讲&#xff0c;这项特性使得C#能够使用类似const的参数来提高性能。像我们所知道的“ref只读参数”和简单…

MyBatis中的原理

01Mybatis的运行原理 运行过程中涉及到的类 1.1 Resources MyBatis中IO流的工具类 1.1 加载配置文件 1.2 SqlSessionFactoryBuilder() 构建器 1.2.1 作用:创建SqlSessionFactory接口的实现类 1.3 XMLConfigBuilder MyBatis全局配置文件内容构建器类 1.3.1 作用负责读取流内容并…

JavaFX UI控件教程(十九)之Hyperlink

翻译自 Hyperlink 本章介绍Hyperlink用于将文本格式化为超链接的控件。 所述Hyperlink类表示另一种类型的Labeled控制。图18-1演示了默认超链接实现的三种状态。 图18-1超链接控制的三种状态 创建超链接 示例18-1中显示了生成超链接的代码片段。 例18-1典型的超链接 Hype…

杨辉三角形

package com.wdl.day07;/*** 创建人 wdl* 创建时间 2021/8/8* 描述*/ public class YangHuiTest {public static void main(String[] args) {int[][] yanghui new int[10][];for (int i 0; i < yanghui.length; i) {yanghui[i] new int[i 1];yanghui[i][0] 1;yanghui[i…

致我们最最最最最最最最最最最最最优秀的班主任——王老师

今天不说java&#xff0c;也不表C#&#xff0c;只来叙叙我们最最最最最最最最最最最最最优秀的班主任————王老师。亲爱的王老师&#xff0c;一起为3班孩子们的学业共同努力而使我倍感荣幸。回想从我们班报道以来&#xff0c;大大小小的各种奖状铺满那墨绿黑板的右侧&#x…

Asp.Net Core 发布到IIS

一、Asp.Net Core 发布到IIS 1.许多时候在WindowsServer服务器上已经安装了IIS&#xff0c;监听80端口&#xff0c;那么Asp.Net Core应用的自宿主就没法监听80端口 2.也就是在Widnows系统已经启用IIS服务的情况下&#xff0c;需要安装 NET Core Windows Server Hosting&#…

JavaFX UI控件教程(二十)之HTML Editor

翻译自 HTML Editor 在本章中&#xff0c;您将学习如何使用嵌入式HTML编辑器编辑JavaFX应用程序中的文本。 该HTMLEditor控件是一个功能齐全的富文本编辑器。它的实现基于HTML5的文档编辑功能&#xff0c;包括以下编辑功能&#xff1a; 文本格式包括粗体&#xff0c;斜体&am…

JavaScript ECMA

JavaScript的引入方式 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><!--[1]js引入的方式一 alert:弹窗--><script type"text/javascript"> alert("js学习"); </s…

OJ4008-糖果【各种dp之3】

题目 就是一个英雄瞎搞之类为世界作出贡献&#xff0c;蓝后某zz公司免费给他糖&#xff0c;然后由于某些原因他只能拿能整除k数量糖果&#xff0c;然后每个盒子里有一定数量的糖果&#xff0c;拿了盒子就必须拿完里面所有的糖果&#xff0c;求他怎么拿的最多。 输入 5 7 1 …

使用layui弹框实现添加时,当添加成功之后如何进行关闭当前窗口刷新父页面的数据

一看标题可能大家都比较模糊&#xff0c;我就去特意做了一个gif的演示图&#xff0c;结果发现太小了&#xff0c;就改成了现在的视频&#xff0c;视频地址&#xff1a; 使用layui实现对数据的增删改查演示案例实现技术是&#xff1a;ssh框架layui表格&#xff0c;即简单的对单表…