/**
*
*/
package com.hotelmanagement.utils;
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 MybatisSqlSessionFactory {
private static SqlSession session;
private static SqlSessionFactory factory;
/*静态块只进入一次 因为session的开销太大,session可以共享,所以进入一次即可*/
static{
InputStream is = null;
try {
is = Resources.getResourceAsStream("mybatis-config.xml");
factory = new SqlSessionFactoryBuilder().build(is);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(is != null){
try {
is.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
/**
*
*/
public MybatisSqlSessionFactory() {
// TODO Auto-generated constructor stub
}
//如果使用中session丢失重新获取
public static void rebuildSqlSessionFactory(){
InputStream is = null;
try {
is = Resources.getResourceAsStream("mybatis-config.xml");
factory = new SqlSessionFactoryBuilder().build(is);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(is != null){
try {
is.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
/**
* 获取SqlSession实例
* @return SqlSession
*/
public static SqlSession getSession(){
if(factory == null){
rebuildSqlSessionFactory();
}
session = factory.openSession();
return session;
}
/**
* 释放资源
*/
public static void close(){
if(session != null){
session.close();
}
}
}
相关推荐
SSE消息推送避坑指南:从Chrome兼容性到Spring超时配置
本文深入探讨了在Java Spring Boot项目中实现SSE消息推送时,从浏览器兼容性到后端配置的完整避坑指南。针对Chrome并发连接限制、Safari自动断开、Nginx代理缓冲以及Spring SseEmitter内存泄漏与超时管理等生产环境常见问题,提供了具体的解决方案和最佳实践配置,帮助开发者构建稳定可靠的实时推送系统。
MyBatis SqlSessionFactory
使用 MyBatis 首先是使用配置或者代码去生产 SqlSessionFactory,而 MyBatis 提供了构造器 SqlSessionFactoryBuilder。它提供了一个类 org.apache.ibatis.session.Configuration 作为引导,采用的是 Builder 模式。具体的分步则是在 Configuration 类里面完成的,当然会有很多内容,包括你很感兴趣的插件。
避坑指南:STM32CubeMX配置SDIO4bit模式时为什么卡在HAL_SD_ConfigWideBusOperation?
本文深入分析了使用STM32CubeMX配置SDIO 4位模式时,程序在HAL_SD_ConfigWideBusOperation函数处卡死的常见问题。文章从硬件连接、CubeMX配置、初始化序列及HAL库底层实现等多个维度剖析根源,并提供了从初始化流程优化到增强代码鲁棒性等实战解决方案,帮助开发者彻底解决这一棘手难题。
Mybatis-plus 定义SqlSessionFactory
Mybatis-plus 定义SqlSessionFactory
手把手调试AD9653的LVDS数据采集:从VIO抓波形到用F0/F8帧对齐的实战心得
本文详细介绍了AD9653高速ADC与Xilinx 7系列FPGA(如7z035)的LVDS数据采集调试实战经验。从硬件环境搭建、Vivado工具链配置到LVDS数据对齐技巧,重点分享了利用VIO抓取波形和使用F0/F8帧对齐的实用方法,帮助工程师快速解决高速数据采集系统中的信号完整性问题。
TestFlight分发测试app,提示无法安装 所请求的App不可用或者不存在
TestFlight分发测试app,提示无法安装 所请求的App不可用或者不存在
Mybatis 之 SqlSessionFactory
基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为中心的。SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先定制的 Configuration 的实例构建出 SqlSessionFactory 的实例。 一.
CentOS 7.9安装python3.11
CentOS 7.9安装python3.11
mybatis-plus源码分析-1-sqlSessionFactory的生成
注:本篇本人看的较为混乱,而且个人觉得实际收获不是很大,因此可以选择跳过,直接去看源码分析-2-MapperScanner。 预备知识: 在spring整合mybatis时,我们需要配置以下3个东西: dataSource(数据源) sqlSessionFactory MapperScanner(Mapper扫描器) 本次将介绍的是sqlSessionFactory的生成,在讲解具体代码之前,...
NVIDIA DGX Spark实战指南:从开箱到AI模型高效部署
本文详细介绍了NVIDIA DGX Spark的开箱体验、硬件架构及AI模型高效部署实战指南。从1 PetaFLOP算力的迷你设备到Grace Blackwell超级芯片的深度解析,再到五分钟快速上手指南和大模型部署技巧,帮助开发者充分利用这款全球最小AI超级计算机的性能优势。
在Android Jetpack Compose中实现夜间模式
Android基于Compose的深色主题实现
MyBatis常用对象SqlSessionFactory
SqlSessionFactory
29、固态变压器拓扑、设计及其应用深度解析
本文深入解析了固态变压器(SST)的拓扑结构、设计方法及其在智能电网和能源互联网中的应用。重点探讨了机器学习在SST优化设计中的应用,包括中高频变压器设计、整体系统优化与建模研究。文章详细介绍了多端口SST的拓扑特点、功率传输机制及其作为能源路由器的关键作用,分析了不同端口数量下的控制复杂度与应用场景,并通过案例研究展示了四端口SST在分布式能源系统中的实际应用。最后,文章总结了多端口SST面临的技术挑战,并展望了未来在先进控制策略、集成化设计和标准化方面的发展方向。
OSGI系列之mybatis
一、不在blueprint文件中进行操作mybatis (绝对路径) 1、mybatis的配置文件(SqlMapConfig.xml) <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration ...
SAP B1中文培訓教材_SDK
公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说
RU DOS版、EFI版32bit/64bit BIOS常用工具
DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。
Day24-java核心+Spring生态篇:JDBC、Hibernate、MyBatis、JPA持久层技术的四次进化
今天这篇文章,把过去21年Java持久层的四次进化讲清楚,让你下次面对技术选型时,不只是"跟着团队用",而是真正理解每种方案为什么存在、为什么消亡、为什么共存
假人有限元模型
假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用
MyBatis的SqlSessionFactory创建配置文件
SqlSessionFactory创建配置文件 1、SqlSessionFactory简介 SqlSessionFactory是MyBatis中的一个重要的对象,它是用来创建SqlSession对象的,而SqlSession用来操作数据库的。 2、SqlSessionFactory生成 SqlSessionFactory对象可以通过SqlSessionFactoryBuilder来获得,而SqlSessionFactoryBuildr则可以从XML配置文件或预先定制的Configuration实例构建出Sq
pscad IEEE标准系统搭建说明
pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。
Spring干货---IOC
spring ioc介绍,只讲干货,不说废话
Mybatis-plus 自定义SqlSessionFactory
项目中需要用到Mybatis的插件,配置插件的时候需要自定义SqlSessionFactory 网上的信息不太准确,本文记录订正并共享大家。 Mybatis-plus 和Mybatis 是兼容的。 所以网上的配置 mybatis 的SqlSessionFactory 的方法基本上可行,但是对于mybatis-plus 的一些特性会丢失 例如 @TableField(fill = FieldFill.INSERT) 注解 正确的配置方式: @Component public class DateAutoFil
【SpringBoot】MyBatis-plus 报错 sqlSessionFactory sqlSessionTemplate 最新解决办法
其他的帖子大多都停留在 SpringBoot 2版本时代,MyBatis 在2022年11月才对 SpringBoot 3 提供支持,如果其他文章不能解决该报错,那么新的途径如下。
mybatis mybatis-plus配置SqlSessionFactory
配置Mybatis配置时,需要增加自定义拦截器以及过滤器,需要在自定义sqlSession工厂进行注入,plus官方AutoSqlConfiguration,会自动注入该工厂,但是声明后则用自定义,需要使用与之对应的session工厂初始化;
Mybatis之SqlSessionFactory详解
SqlSessionFactory详解
MyBatis源码分析(二)SqlSessionFactory的构建及配置文件读取过程
当我们获取到SqlSessionFactory之后,相当于初始化工作已经全部处理完成了,DefaultSqlSessionFactory中包含着Configuration的引用,所有的配置(Mapper、TypeHandler等等)都加载在Configuration中了。
2.Mybatis的核心工作原理之SqlSessionFactory
Mybatis的核心工作原理之SqlSessionFactory 从宏观角度学习Mybatis的架构、工作原理、主要模块,从微观角度学习Mybatis的工作原理与设计思想。 一、SqlSessionFactory 首先我们来看下SqlSessionFactory的获取: SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in); 1.SqlSessionFactoryBuilder 首先我们new了一个SqlSessio
mybatis-plus自定义SqlSessionFactory
mybatis-plus自定义SqlSessionFactory
Mybatis框架中SqlSessionFactory
首先SqlSessionFactory与SqlSession都是同一个接口 SqlSessionFactory是通过SqlSessionFactoryBuilder的build方法创建的 而build方法创建的是一个SqlSessionFactory的实现类,叫DefaultSqlSessionFactory 然后这个实现类主要用的设计模式是建造者(build)模式,而里面最终要达到的一个目的是为了创建出DefaultSqlSession,这个是SqlSession的实现类. 前面说了SqlSe..
Mybatis核心类SqlSessionFactory,看完我悟了
在上一篇文章《Mybatis源码解析2——实例搭建》中,可乐给大家手撸了一遍如何通过 Mybatis 对数据库一张表进行增删改查。至此,Mybatis 的前奏已经演奏完毕,接下来,我们将会进入高潮部分,请大家搬好小板凳,可乐将会用最通俗易懂,图文并茂的方式,给大家深入剖析 Mybatis 的实现原理。 本篇文章我们首先解析 SqlSessionFactory 的创建过程。 1、实例代码 在实例代码中,我们在测试类中写了一个 init() 方法,里面包括了 SqlSessionFactory 的构建,分为两
449



被折叠的 条评论
为什么被折叠?



