当前位置: 首页 > news >正文

关于做服饰网站的首页视频网站开发方案

关于做服饰网站的首页,视频网站开发方案,网站排名优化公司推荐,制作一个网站多少钱目录🌟更多专栏请点击👇一、前言二、实现过程1. 创建一个ThreadLocal对象2. 初始化SqlSessionFactory3. 获取并存储sqlSession对象4. 关闭sqlSession对象三、 总代码🌟更多专栏请点击👇 专栏名字🔥Elasticsearch专栏e…

目录

  • 🌟更多专栏请点击👇
  • 一、前言
  • 二、实现过程
    • 1. 创建一个ThreadLocal对象
    • 2. 初始化SqlSessionFactory
    • 3. 获取并存储sqlSession对象
    • 4. 关闭sqlSession对象
  • 三、 总代码

🌟更多专栏请点击👇

专栏名字
🔥Elasticsearch专栏es
🔥spring专栏spring开发
redis专栏redis学习笔记
🔥项目专栏项目集锦
修bug专栏bug修理厂

一、前言

使用MyBatis框架在持久层操作中,如果多个DML操作都属于一个事务,因为commit()和rollback()都是SqlSession完成的,所以必须保证只使用一个SqlSession,但是不同的DML操作可能在不同类的不同方法中,每个方法都需要获取SqlSession,所以应该如何在多个DML操作中保证使用同一个SqlSession呢?
在这里插入图片描述

二、实现过程

1. 创建一个ThreadLocal对象

下面给大家带来了一个工具类:ThreadLocal,它可以储存SqlSession对象,并且保证一个线程只使用一个SqlSession。现在来学习一下如何创建MyBatis这个工具类

首先需要new一个ThreadLocal对象,以便存储SqlSession:

 private static ThreadLocal<SqlSession> threadLocal = new ThreadLocal<>();

2. 初始化SqlSessionFactory

在一个静态代码块中初始化SqlSessionFactory:

 static {//创建SqlSessionFactoryInputStream is = null;try {is = Resources.getResourceAsStream("mybatis-cfg.xml");} catch (IOException e) {e.printStackTrace();}sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);}

3. 获取并存储sqlSession对象

接下来就是从ThreadLocal中获取sqlSession对象,并且使用ThreadLocal存储该对象:

tips:存储SqlSession的时候要判断该对象是否为空,要是为空就要获取一个,然后再存到ThreadLocal,返回一个SqlSession。

//获取SqlSessionpublic static SqlSession getSqlSession(){SqlSession sqlSession = threadLocal.get(); if(sqlSession == null){sqlSession = sqlSessionFactory.openSession();     threadLocal.set(sqlSession);                        }return sqlSession;}

4. 关闭sqlSession对象

接下来也可以在该工具类写关闭sqlSession方法

  //关闭sqlSessionpublic static void closeSqlSession(){SqlSession sqlSession = threadLocal.get();if (sqlSession != null){           sqlSession.close();threadLocal.set(null);}}

三、 总代码

public class MyBatisUtils {private static ThreadLocal<SqlSession> threadLocal = new ThreadLocal<>();private static SqlSessionFactory    sqlSessionFactory = null;static {//创建SqlSessionFactoryInputStream is = null;try {is = Resources.getResourceAsStream("mybatis-cfg.xml");} catch (IOException e) {e.printStackTrace();}sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);}//获取SqlSessionpublic static SqlSession getSqlSession(){SqlSession sqlSession = threadLocal.get();        if(sqlSession == null){sqlSession = sqlSessionFactory.openSession();       threadLocal.set(sqlSession);                       }return sqlSession;}//关闭sqlSessionpublic static void closeSqlSession(){SqlSession sqlSession = threadLocal.get();if (sqlSession != null){            sqlSession.close();threadLocal.set(null);}}
}
http://www.yayakq.cn/news/967711/

相关文章:

  • wordpress建立论坛网站wordpress 4.9.6 下载
  • 个人建站哪类站赚钱招聘网站建设维护人员
  • 山东省建设厅电工证查询网站如何请人做网站
  • 云南科技网站建设linux下wordpress
  • c2c网站有哪些平台ps培训班要学多久多少钱
  • 域名有了怎么制作网站帮别人做网站需要什么能力
  • 贵阳 网站建设wordpress小图标大全
  • 一个公司做几个网站网站建设的可行性分析
  • 中国手机网站建设公司小学生编程课主要学什么
  • 未来商城网站建设莱芜网
  • 建设网站需要掌握什么编程语言seo关键词优化推广哪家好
  • 网站正在备案中模板唐山网站制作网络公司
  • 安徽企业网站建设wordpress臃肿吗
  • 网站没续费会怎样备案期间网站能访问吗
  • 地方门户网站域名seo综合查询什么意思
  • html5网站开发工具有哪些如何建立网站后台
  • seo教程网站门户网站建设服务报价
  • 电子商务网站建设大二实训免费seo网站优化工具
  • 宁波网站建设模板下载免费乐东黎族自治县住房建设局网站
  • 张家口万全区建设网站网站开发建设账务处理程序
  • 湛江做网站优化女人和男人做床上爱网站
  • 安岳网站建设专门做网站
  • 破解要钱网站如何在网站发广告
  • 网站优化排名南京房产网站建设
  • 网站正在建设页面模板国外财经网站是怎么做的
  • 百度中搜到网站名字汶上手机网站建设
  • 网站上的菠菜游戏哪里可以做泉州平台网站建设
  • 网站建设 体会手机触屏版网站管理系统
  • 网站建设情况自查报告网站备案信息下载
  • 广州外贸营销型网站建设专做logo网站叫什么地方