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();
    }
相关推荐
郝学胜-神的一滴2 分钟前
Qt重复添加控件问题探析:现象、原理与解决方案
开发语言·数据库·c++·qt·程序人生
C++chaofan5 分钟前
JUC 并发编程从入门到精通(超详细笔记 + 实战案例)
java·jvm·spring boot·redis·后端·并发·juc
java porter6 分钟前
系统架构设计之单例模式(下)
开发语言·javascript·单例模式
小北方城市网8 分钟前
第 4 课:前端工程化进阶 ——Vue 核心语法 + 组件化开发(前端能力质的飞跃)
大数据·开发语言·数据库·python·状态模式·数据库架构
zhaokuner11 分钟前
02-通用语言与协作-DDD领域驱动设计
java·开发语言·设计模式·架构
㳺三才人子11 分钟前
初探 Python + Django
开发语言·python·django
小毅&Nora16 分钟前
【后端】【JAVA】JDK 21与JDK 7 JVM结构及GC算法深度解析:从永久代到元空间,从CMS到ZGC的演进
java·jvm·gc
嵌入式×边缘AI:打怪升级日志17 分钟前
USB设备枚举过程详解:从插入到正常工作
开发语言·数据库·笔记
寻星探路18 分钟前
网络原理全景图:从通信起源到 TCP/IP 体系架构深度拆解
java·网络·c++·python·tcp/ip·http·架构
北执南念18 分钟前
MyBatis 基础总结
oracle·tomcat·mybatis