两张图彻底搞懂MyBatis的Mapper原理!

【两张图彻底搞懂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}

 
流程图
但是我认为,一张流程图和时序图就看明白这期间所发生的事
两张图彻底搞懂MyBatis的Mapper原理!

文章图片

 
两张图彻底搞懂MyBatis的Mapper原理!

文章图片

两张图彻底搞懂MyBatis的Mapper原理!

文章图片

 
两张图彻底搞懂MyBatis的Mapper原理!

文章图片
两张图彻底搞懂MyBatis的Mapper原理!

文章图片

 
 
免费java资料领取,涵盖了Java、Redis、MongoDB、mysql、Zookeeper、Spring Cloud、Dubbo/Kafka、Hadoop、Hbase、Flink等高并发分布式、大数据、机器学习等技术。
传送门:https://mp.weixin.qq.com/s/JzddfH-7yNudmkjT0IRL8Q

    推荐阅读