MybatisSqlSessionFactory类来得到Mybatis的session对象

Mybatis高级特性与性能优化实战指南 ORM框架作为Java开发中数据库操作的核心组件,其性能与灵活性直接影响系统表现。Mybatis通过动态SQL、类型处理器等机制实现了SQL与代码的解耦,同时保持了对原生SQL的完全控制权。在架构设计上,Mybatis采用分层模型,基础支撑层处理数据源和事务,核心处理层负责SQL解析与映射,接口层则提供简洁的API调用方式。这种设计使其在保证轻量级的同时,通过插件机制实现了强大的扩展能力。在实际工程应用中,Mybatis特别适合需要精细控制SQL、处理复杂查询场景的企业级项目。通过合理使用其缓存机制、批量操 阅读详情
/**
 * 
 */
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();
		}
	}

}

S32DS新建工程、编译调试下载、导入工程详细介绍 新建了一个工程之后,下面简单介绍下基本的UI界面。其中最左下角那个是界面,这个界面很重要,是图形化配置界面,然后可以根据这些配置自动生成代码。其中,左边那些配置文件,都是系统帮我们创建好了的,我们其实可以直接用就行。有PE工具的调试,以及Jlink工具的调试。我目前使用到PE工具调试可以查看寄存器值,而Jlink调试查看不了寄存器值。连接了开发板之后,点击Debug就可以吧程序下载到芯片上了,而且可以进入到调试界面。 阅读详情

相关推荐

SSE消息推送避坑指南:从Chrome兼容性到Spring超时配置

本文深入探讨了在Java Spring Boot项目中实现SSE消息推送时,从浏览器兼容性到后端配置的完整避坑指南。针对Chrome并发连接限制、Safari自动断开、Nginx代理缓冲以及Spring SseEmitter内存泄漏与超时管理等生产环境常见问题,提供了具体的解决方案和最佳实践配置,帮助开发者构建稳定可靠的实时推送系统。

work3的博客 449

MyBatis SqlSessionFactory

使用 MyBatis 首先是使用配置或者代码去生产 SqlSessionFactory,而 MyBatis 提供了构造器 SqlSessionFactoryBuilder。它提供了一个类 org.apache.ibatis.session.Configuration 作为引导,采用的是 Builder 模式。具体的分步则是在 Configuration 类里面完成的,当然会有很多内容,包括你很感兴趣的插件。

unber的博客 298

避坑指南:STM32CubeMX配置SDIO4bit模式时为什么卡在HAL_SD_ConfigWideBusOperation?

本文深入分析了使用STM32CubeMX配置SDIO 4位模式时,程序在HAL_SD_ConfigWideBusOperation函数处卡死的常见问题。文章从硬件连接、CubeMX配置、初始化序列及HAL库底层实现等多个维度剖析根源,并提供了从初始化流程优化到增强代码鲁棒性等实战解决方案,帮助开发者彻底解决这一棘手难题。

pca5navigator的博客 824

Mybatis-plus 定义SqlSessionFactory

Mybatis-plus 定义SqlSessionFactory

m0_56419249的博客 3614

手把手调试AD9653的LVDS数据采集:从VIO抓波形到用F0/F8帧对齐的实战心得

本文详细介绍了AD9653高速ADC与Xilinx 7系列FPGA(如7z035)的LVDS数据采集调试实战经验。从硬件环境搭建、Vivado工具链配置到LVDS数据对齐技巧,重点分享了利用VIO抓取波形和使用F0/F8帧对齐的实用方法,帮助工程师快速解决高速数据采集系统中的信号完整性问题。

weixin_29169899的博客 701

TestFlight分发测试app,提示无法安装 所请求的App不可用或者不存在

TestFlight分发测试app,提示无法安装 所请求的App不可用或者不存在

天穹云原生 9169

Mybatis 之 SqlSessionFactory

基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为中心的。SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先定制的 Configuration 的实例构建出 SqlSessionFactory 的实例。 一.

zsg88的专栏 1551

CentOS 7.9安装python3.11

CentOS 7.9安装python3.11

leafseelight的专栏 1342

mybatis-plus源码分析-1-sqlSessionFactory的生成

注:本篇本人看的较为混乱,而且个人觉得实际收获不是很大,因此可以选择跳过,直接去看源码分析-2-MapperScanner。 预备知识: 在spring整合mybatis时,我们需要配置以下3个东西: dataSource(数据源) sqlSessionFactory MapperScanner(Mapper扫描器) 本次将介绍的是sqlSessionFactory的生成,在讲解具体代码之前,...

bintoYu的博客 2572

NVIDIA DGX Spark实战指南:从开箱到AI模型高效部署

本文详细介绍了NVIDIA DGX Spark的开箱体验、硬件架构及AI模型高效部署实战指南。从1 PetaFLOP算力的迷你设备到Grace Blackwell超级芯片的深度解析,再到五分钟快速上手指南和大模型部署技巧,帮助开发者充分利用这款全球最小AI超级计算机的性能优势。

weixin_29239279的博客 1363

在Android Jetpack Compose中实现夜间模式

Android基于Compose的深色主题实现

虎哥LoveDroid 1234

MyBatis常用对象SqlSessionFactory

SqlSessionFactory

weixin_66119119的博客 644

29、固态变压器拓扑、设计及其应用深度解析

本文深入解析了固态变压器(SST)的拓扑结构、设计方法及其在智能电网和能源互联网中的应用。重点探讨了机器学习在SST优化设计中的应用,包括中高频变压器设计、整体系统优化与建模研究。文章详细介绍了多端口SST的拓扑特点、功率传输机制及其作为能源路由器的关键作用,分析了不同端口数量下的控制复杂度与应用场景,并通过案例研究展示了四端口SST在分布式能源系统中的实际应用。最后,文章总结了多端口SST面临的技术挑战,并展望了未来在先进控制策略、集成化设计和标准化方面的发展方向。

study的专栏 3790

OSGI系列之mybatis

一、不在blueprint文件中进行操作mybatis (绝对路径) 1、mybatis的配置文件(SqlMapConfig.xml) <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration ...

chunzuju8220的博客 133

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持久层的四次进化讲清楚,让你下次面对技术选型时,不只是"跟着团队用",而是真正理解每种方案为什么存在、为什么消亡、为什么共存

雨1986的博客 798

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

MyBatis的SqlSessionFactory创建配置文件

SqlSessionFactory创建配置文件 1、SqlSessionFactory简介 SqlSessionFactory是MyBatis中的一个重要的对象,它是用来创建SqlSession对象的,而SqlSession用来操作数据库的。 2、SqlSessionFactory生成 SqlSessionFactory对象可以通过SqlSessionFactoryBuilder来获得,而SqlSessionFactoryBuildr则可以从XML配置文件或预先定制的Configuration实例构建出Sq

ICanDoIt 1149

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Spring干货---IOC

spring ioc介绍,只讲干货,不说废话

zhzhxian的博客 420

Mybatis-plus 自定义SqlSessionFactory

项目中需要用到Mybatis的插件,配置插件的时候需要自定义SqlSessionFactory 网上的信息不太准确,本文记录订正并共享大家。 Mybatis-plus 和Mybatis 是兼容的。 所以网上的配置 mybatis 的SqlSessionFactory 的方法基本上可行,但是对于mybatis-plus 的一些特性会丢失 例如 @TableField(fill = FieldFill.INSERT) 注解 正确的配置方式: @Component public class DateAutoFil

keep_learn的专栏 1万+

【SpringBoot】MyBatis-plus 报错 sqlSessionFactory sqlSessionTemplate 最新解决办法

其他的帖子大多都停留在 SpringBoot 2版本时代,MyBatis 在2022年11月才对 SpringBoot 3 提供支持,如果其他文章不能解决该报错,那么新的途径如下。

叼辣条闯天涯 6155

mybatis mybatis-plus配置SqlSessionFactory

配置Mybatis配置时,需要增加自定义拦截器以及过滤器,需要在自定义sqlSession工厂进行注入,plus官方AutoSqlConfiguration,会自动注入该工厂,但是声明后则用自定义,需要使用与之对应的session工厂初始化;

csdn_zzw_daniu的博客 1760

Mybatis之SqlSessionFactory详解

SqlSessionFactory详解

升仔聊编程的博客 2620

MyBatis源码分析(二)SqlSessionFactory的构建及配置文件读取过程

当我们获取到SqlSessionFactory之后,相当于初始化工作已经全部处理完成了,DefaultSqlSessionFactory中包含着Configuration的引用,所有的配置(Mapper、TypeHandler等等)都加载在Configuration中了。

秃了也弱了 2962

2.Mybatis的核心工作原理之SqlSessionFactory

Mybatis的核心工作原理之SqlSessionFactory ​ 从宏观角度学习Mybatis的架构、工作原理、主要模块,从微观角度学习Mybatis的工作原理与设计思想。 一、SqlSessionFactory 首先我们来看下SqlSessionFactory的获取: SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in); 1.SqlSessionFactoryBuilder 首先我们new了一个SqlSessio

weixin_36401695的博客 1800

mybatis-plus自定义SqlSessionFactory

mybatis-plus自定义SqlSessionFactory

Coco_chun的博客 2800

Mybatis框架中SqlSessionFactory

首先SqlSessionFactory与SqlSession都是同一个接口 SqlSessionFactory是通过SqlSessionFactoryBuilder的build方法创建的 而build方法创建的是一个SqlSessionFactory的实现类,叫DefaultSqlSessionFactory 然后这个实现类主要用的设计模式是建造者(build)模式,而里面最终要达到的一个目的是为了创建出DefaultSqlSession,这个是SqlSession的实现类. 前面说了SqlSe..

小泽 1659

Mybatis核心类SqlSessionFactory,看完我悟了

在上一篇文章《Mybatis源码解析2——实例搭建》中,可乐给大家手撸了一遍如何通过 Mybatis 对数据库一张表进行增删改查。至此,Mybatis 的前奏已经演奏完毕,接下来,我们将会进入高潮部分,请大家搬好小板凳,可乐将会用最通俗易懂,图文并茂的方式,给大家深入剖析 Mybatis 的实现原理。 本篇文章我们首先解析 SqlSessionFactory 的创建过程。 1、实例代码 在实例代码中,我们在测试类中写了一个 init() 方法,里面包括了 SqlSessionFactory 的构建,分为两

IT可乐 1053
上一篇: 得到DAO接口的拦截器写法
下一篇: hibernate 配置相关
wankaiming
博客等级 码龄15年 49粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值