Mybatis——SqlSession的工作流程

1. 开启一个数据库访问会话---创建SqlSession对象:

MyBatis封装了对数据库的访问,把对数据库的会话和事务控制放到了SqlSession对象中。

2.为SqlSession传递一个映射的SQL语句的Statement Id和参数,然后返回结果:

SqlSession根据Statement ID, 在MyBatis配置对象Configuration中获取到对应的MappedStatement对象 调用MyBatis执行器来执行具体的操作。

MyBatis在初始化的时候,会将MyBatis的配置信息全部加载到内存中,使用Configuration实例来维护。

映射文件加载到内存中会生成n个对应的MappedStatement对象

key="net.onest.mapper.UserMapper.selectAllUsers" ,value为MappedStatement对象的形式维护到Configuration的一个Map类型的属性中。

编写代码进行测试

java 复制代码
public void insertUser() {
        SqlSession sqlSession = MybatisUtil.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);

        User user = new User();
        user.setUserName("lcs");
        user.setPassword("123456");

        int num = mapper.insertUser(user);
        System.out.println(num);
        System.out.println(user.getUserId());

        sqlSession.commit();
        sqlSession.close();
    }
相关推荐
步行cgn5 分钟前
Spring 中完整的 Scope 选项详解
java·后端·spring
hai_android26 分钟前
Android MeasureSpec 详解
android·java·kotlin
weixin_3077791335 分钟前
C++代码实现MATLAB中的ode23tb函数功能
开发语言·c++·算法·matlab
2601_966949651 小时前
为什么量化回测中 for 循环比 DataFrame 慢三个数量级?从向量化原理讲起
开发语言·python·pandas·股票数据·quantdash
阳光宅男@李光熠2 小时前
【电子通识】一起学习TDK的EMC基础——电池兼容设计方法概述
java·前端·数据库
张宜强2 小时前
025 安居租赁 · 房屋租赁平台
java·课程设计
Java_2017_csdn2 小时前
ReentrantLock 与 Redis RLock 对比解读
java
YDS8292 小时前
Small Spring IOC篇:实现 Bean 的定义、注册、获取
java·spring
边境悍匪2 小时前
蜗牛学苑 Java 智能体学习 Day45|Knife4j+SpringBoot3、书城项目整合 MyBatis 思维导图复盘
java·开发语言·vue.js·学习·spring
我的xiaodoujiao2 小时前
Django 基础知识详细图文教程 9-Django 模板引擎 2
开发语言·数据库·后端·django