【两张图彻底搞懂MyBatis的Mapper原理!】人生必须的知识就是引人向光明方面的明灯。这篇文章主要讲述两张图彻底搞懂MyBatis的Mapper原理!相关的知识,希望能为你提供帮助。
作者:肥朝简单使用
这是一个简单的Mybatis保存对象的例子
1@Test 2public void testSave() throws Exception { 3//创建sessionFactory对象 4SqlSessionFactory sf = new SqlSessionFactoryBuilder(). 5build(Resources.getResourceAsStream("mybatis-config.xml")); 6//获取session对象 7SqlSession session = sf.openSession(); 8//创建实体对象 9User user = new User(); 10user.setUsername("toby"); 11user.setPassword("123"); 12user.setAge(23); 13//保存数据到数据库中 14session.insert("com.toby.mybatis.domain.UserMapper.add", user); 15//提交事务,这个是必须要的,否则即使sql发了也保存不到数据库中 16session.commit(); 17//关闭资源 18session.close(); 19}
1< mapper namespace="com.toby.mybatis.domain.UserMapper"> 2< !--#{}在传入的对象中找对应的属性值--> 3< !--parameterType传入的参数是什么类型--> 4< insert id="add" parameterType="com.toby.mybatis.domain.User"> 5INSERT INTO USER (username,password,age) VALUES (#{username},#{password},#{age}) 6< /insert> 7< /mapper>
引出主题
但是在实际中,我们都不是这样操作的,我们是通过Mapper接口,调用接口方法,就能实现CRUD操作,那么关键是,这个接口究竟做了什么事,才是我们关心的.
只要把下面这段代码究竟发生了什么事弄明白,就明白,这个Mapper接口究竟做了什么事.
1public void testGetObject() throws Exception { 2SqlSession session = MybatisUtil.openSession(); 3 4UserMapper mapper = session.getMapper(UserMapper.class); 5User user = mapper.get(5L); 6 7System.out.println(user); 8session.close(); 9}
1public interface UserMapper { 2 3public void add(User user); 4public User get(Long id); 5}
流程图
但是我认为,一张流程图和时序图就看明白这期间所发生的事
文章图片
文章图片
文章图片
文章图片
文章图片
免费java资料领取,涵盖了Java、Redis、MongoDB、mysql、Zookeeper、Spring Cloud、Dubbo/Kafka、Hadoop、Hbase、Flink等高并发分布式、大数据、机器学习等技术。
传送门:https://mp.weixin.qq.com/s/JzddfH-7yNudmkjT0IRL8Q
推荐阅读
- Spring源码解析-applicationContext.xml加载和bean的注册
- 《荣耀词域》(自制记单词App)使用说明
- Android Studio连接小米手机
- Android 表格布局
- SQLServer连接查询之Cross Apply和Outer Apply的区别及用法
- R中的双变量分布热图
- 制作CSV格式数据集(图像数据集)
- DBSCAN(Python的宏观调查)
- Python开发(MeetUp API和JSON数据)