首页 > 数据库 >定义一个 MybatisUtil 工具类,用于简化 MyBatis 的 SqlSession 获取过程。

定义一个 MybatisUtil 工具类,用于简化 MyBatis 的 SqlSession 获取过程。

时间:2024-11-20 22:41:34浏览次数:1  
标签:MybatisUtil SqlSessionFactory 配置文件 factory SqlSession MyBatis Resources

  1. 导入所需的类:

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
Resources:这是 MyBatis 提供的一个工具类,用于加载配置文件等资源。
SqlSession:是 MyBatis 与数据库交互的核心接口,封装了数据库操作的方法。
SqlSessionFactory:这是 MyBatis 的核心工厂类,用于创建 SqlSession 对象。
SqlSessionFactoryBuilder:用于从配置文件创建 SqlSessionFactory 实例。
2. 静态块初始化 SqlSessionFactory:

private static SqlSessionFactory factory;
static {
try {
factory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsReader("mybatis-config.xml"));
} catch (IOException e) {
e.printStackTrace();
}
}
静态变量 factory:这个变量用于保存 SqlSessionFactory 的实例,SqlSessionFactory 是 MyBatis 处理数据库会话的工厂类。

静态代码块:当类被加载时,静态代码块会被执行一次。这里的静态块用来初始化 SqlSessionFactory。

Resources.getResourceAsReader("mybatis-config.xml"):这个方法从类路径中加载 mybatis-config.xml 配置文件,并返回一个 Reader(输入流)。
new SqlSessionFactoryBuilder().build(...):根据 mybatis-config.xml 配置文件,创建并初始化 SqlSessionFactory 对象。
注意:如果配置文件加载失败或出现其他异常,IOException 会被捕获并打印堆栈跟踪信息。

  1. getSession 方法:
    java
    public static SqlSession getSession() {
    return factory.openSession(true);
    }
    getSession 方法:这个方法用于获取一个新的 SqlSession 实例。SqlSession 是 MyBatis 中用于执行 SQL 语句的对象,它封装了数据库的操作和事务管理。
    factory.openSession(true):通过 SqlSessionFactory 获取一个新的 SqlSession。这里的 true 参数表示开启自动提交事务(即不需要手动提交事务,每次执行更新操作后自动提交)。

标签:MybatisUtil,SqlSessionFactory,配置文件,factory,SqlSession,MyBatis,Resources
From: https://www.cnblogs.com/ztn195/p/18559523

相关文章

  • MyBatis-Plus 学习笔记-条件构造器(不想写sql)
    MyBatis-Plus提供了一套强大的条件构造器(Wrapper),用于构建复杂的数据库查询条件。Wrapper类允许开发者以链式调用的方式构造查询条件,无需编写繁琐的SQL语句,从而提高开发效率并减少SQL注入的风险。在MyBatis-Plus中,Wrapper类是构建查询和更新条件的核心工具。以下是主......
  • MyBatis-Plus 学习笔记-配置(四) DbConfig
    MyBatis-Plus全局策略中的DB策略配置id-type(全局默认主键类)AUTO:使用数据库自增ID作为主键。NONE:无特定生成策略,如果全局配置中有IdType相关的配置,则会跟随全局配置。INPUT:在插入数据前,由用户自行设置主键值。(3.3.0版本)ASSIGN_ID:自动分配 ID,适用于 Long、Integer、St......
  • 深度解析MyBatis增删查改(XML方式):快速掌握数据库操作
    全文目录:开篇语前言......
  • mybatis updateByPrimaryKey 和 updateByPrimaryKeySelective 的区别
    在MyBatis框架中,updateByPrimaryKey和updateByPrimaryKeySelective是两种常用的更新数据的方法,它们的主要区别在于如何处理非主键字段的NULL值。1.updateByPrimaryKey方法功能:根据主键更新记录的所有字段,不管字段值是否为NULL。行为:如果某个非主键字段被设置为NULL,......
  • MyBatis 学习笔记
    MyBatis执行器JDBC的执行过程分为四步:获取数据库连接(Connection)预编译SQL(PrepareStatement)设置参数执行SQL(ResultSet)MyBatis提供了执行器Executor将这一过程进行封装,对外提供SqlSession让用户通过调用其API直接操作数据库,因为SqlSession持有执行器Executor......
  • mybatis 批量添加xml写法 (自增id)
    Mybatis批量添加xml写法(自增id) 1、Mapper里面写法      @Param指明参数名称publicintinsertBatchKernelZhiRecord(@Param("recordList")List<KernelZhiRecord>recordList);2、Xml里面写法自增:useGeneratedKeys指明字段:ke......
  • Mybatis Plus保姆级教程 (一学就会!!!)
    目录一、概述二、框架结构2.1框架剖析2.2基本使用2.2.1创建Mapper接口2.2.2测试三、常用注解[email protected]@TableField3.2.1exist3.2.2select3.2.3fill3.3@TableId3.3.1value3.3.2typeNONEINPUT​​​​​​​AUTOASSIGN_ID和ASSIGN_UUI......
  • 01MybatisPlus(SpringCloud入门必学!!!!微服务!!项目实战!!深度理解MP用法!!!)
    微服务springCloud,今天第一课就是MybatisPlus!!!大家在日常开发中应该能发现,单表的CRUD功能代码重复度很高,也没有什么难度。而这部分代码量往往比较大,开发起来比较费时。        因此,目前企业中都会使用一些组件来简化或省略单表的CRUD开发工作。目前在国内使用较多的......
  • MybatisPlus动态表名
    官网文档https://baomidou.com/plugins/dynamic-table-name/Java代码配置拦截器importcom.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;importcom.baomidou.mybatisplus.extension.plugins.inner.DynamicTableNameInnerInterceptor;importorg.spring......
  • Mybatis 常见异常
    Mybatis列表查询只返回了部分数据,Sql语句多出limit异常//list查询接口List<Info>infoList=xxxMapper.selectList();列表查询接口,只返回了部分数据原因通过日志观察,发现日志打印的sql多了limit参数,怀疑时与分页有关;基于此,搜索资料发现,PageHelper插件是通过ThreadLoc......