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

MyBatis的相应API

MyBatis 是一个优秀的持久层框架,其核心 API 围绕 SQL 会话管理Mapper 接口绑定SQL 执行展开。

1.SqlSession工厂构建器SqlSessionFactoryBuilder

常用API:SqlSessionFactory build(inputStream inputStream)

通过加载mybatis的核心文件的输入流的形式构建一个SqlSessionFactory对象

String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlsessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSSessionFactory factory = builder.build(inputStream);

其中,Resources工具类帮助你从类路径下、文件系统或一个web URL中加载资源文件。

  • 作用:解析配置文件(mybatis-config.xml)或Java配置,生成SqlSessionFactory。
  • 生命周期:临时对象,构建完SqlSessionFactory后即可销毁。

2.SqlSession工厂对象SqlSessionFactoty

  • 作用:创建SqlSession对象实例,是MyBatis的核心对象。
  • 生命周期:应用运行期间全局单例,避免重复创建。
  • 创建SqlSession:
// 自动提交事务(不推荐,需显式控制事务)
//参数为是否自动提交,如果设置为true,那么不需要手动提交事务
SqlSession session = sqlSessionFactory.openSession(true);


// 手动提交事务(推荐)
//会默认开启一个事务,但事务不会自动提交,也就意味着需要手动提交该事务,更新操作数据才会持久化到数据库中
SqlSession session = sqlSessionFactory.openSession();

3.SqlSession会话对象

  • 作用:执行SQL,获取Mapper接口实例,管理事务。
  • 关键方法:
// 查询单条记录
User user = session.selectOne("com.example.mapper.UserMapper.selectById", 1);

// 查询列表
List<User> users = session.selectList("com.example.mapper.UserMapper.selectAll");

// 插入数据
int rows = session.insert("com.example.mapper.UserMapper.insert", newUser);

// 更新数据
int rows = session.update("com.example.mapper.UserMapper.update", user);

// 删除数据
int rows = session.delete("com.example.mapper.UserMapper.delete", 1);

// 提交事务
session.commit();

// 回滚事务
session.rollback();

// 关闭会话(必须!)
session.close();

配置与工具类:配置文件示例(mybatis-config.xml)

<configuration>
    <settings>
        <setting name="mapUnderscoreToCamelCase" value="true"/> <!-- 下划线转驼峰 -->
    </settings>
    <environments default="development">
        <environment name="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/test"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="com/example/mapper/UserMapper.xml"/>
    </mappers>
</configuration>

总结:

  • 核心步骤

    1. 通过 SqlSessionFactoryBuilder 构建 SqlSessionFactory
    2. 从 SqlSessionFactory 获取 SqlSession
    3. 使用 SqlSession 执行 SQL 或获取 Mapper 接口实例。

http://www.kler.cn/a/565575.html

相关文章:

  • 2024华为OD机试真题-数字涂色(C++)-E卷B卷-100分
  • python-leetcode-寻找重复数
  • C++ ++++++++++
  • 前端面试-webpack篇
  • yolov8 目标追踪 (源码 +效果图)
  • 环境会影响你的决策:K近邻算法(KNN)
  • 软考程序员各模块知识点对应的分值分布及考试形式总结
  • 【后端开发面试题】每日 3 题(三)
  • Kubernetes LimitRange对于pod 的 update 事件会不会处理?
  • 嵌入式开发中的计算机体系结构与主流架构深度解析
  • AI关于SHAP分析与列线图(算法)解释线性模型矛盾之处的解释
  • 18440二维差分
  • RustDesk开源远程桌面工具部署【图文详解】
  • python-leetcode-使用最小花费爬楼梯
  • Spring Boot 事件机制
  • Android8.1以上接收静态广播
  • 1-7makefile
  • 若依前后端分离版配置流程
  • 重庆市智慧政务服务“渝快办”工作规范标准规范
  • 【2022——暴力DP / 优雅背包】