两张图彻底搞懂MyBatis的Mapper原理!
2019-03-10 11:57:02来源:博客园 阅读 ()
作者:肥朝
简单使用
这是一个简单的Mybatis保存对象的例子
1@Test
2public void testSave() throws Exception {
3 //创建sessionFactory对象
4 SqlSessionFactory sf = new SqlSessionFactoryBuilder().
5 build(Resources.getResourceAsStream("mybatis-config.xml"));
6 //获取session对象
7 SqlSession session = sf.openSession();
8 //创建实体对象
9 User user = new User();
10 user.setUsername("toby");
11 user.setPassword("123");
12 user.setAge(23);
13 //保存数据到数据库中
14 session.insert("com.toby.mybatis.domain.UserMapper.add", user);
15 //提交事务,这个是必须要的,否则即使sql发了也保存不到数据库中
16 session.commit();
17 //关闭资源
18 session.close();
19}
1<mapper namespace="com.toby.mybatis.domain.UserMapper">
2 <!--#{}在传入的对象中找对应的属性值-->
3 <!--parameterType传入的参数是什么类型-->
4 <insert id="add" parameterType="com.toby.mybatis.domain.User">
5 INSERT INTO USER (username,password,age) VALUES (#{username},#{password},#{age})
6 </insert>
7</mapper>
引出主题
但是在实际中,我们都不是这样操作的,我们是通过Mapper接口,调用接口方法,就能实现CRUD操作,那么关键是,这个接口究竟做了什么事,才是我们关心的.
只要把下面这段代码究竟发生了什么事弄明白,就明白,这个Mapper接口究竟做了什么事.
1public void testGetObject() throws Exception { 2 SqlSession session = MybatisUtil.openSession(); 3 4 UserMapper mapper = session.getMapper(UserMapper.class); 5 User user = mapper.get(5L); 6 7 System.out.println(user); 8 session.close(); 9}
1public interface UserMapper { 2 3 public void add(User user); 4 public 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
原文链接:https://www.cnblogs.com/yuxiang1/p/10498474.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 通过与C++程序对比,彻底搞清楚JAVA的对象拷贝 2020-06-11
- 学习java多线程,这必须搞懂的这几个概念,很重要。 2020-05-07
- IntelliJ IDEA 部署 Web 项目,终于搞懂了! 2020-05-07
- 一文搞懂 Java 中的枚举,写得非常好! 2020-05-06
- 彻底弄懂 HTTP 缓存机制及原理! 2020-04-27
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash