两张图彻底搞懂MyBatis的Mapper原理!
程序员文章站
2022-07-01 23:09:50
作者:肥朝 简单使用 这是一个简单的Mybatis保存对象的例子 引出主题 但是在实际中,我们都不是这样操作的,我们是通过Mapper接口,调用接口方法,就能实现CRUD操作,那么关键是,这个接口究竟做了什么事,才是我们关心的. 只要把下面这段代码究竟发生了什么事弄明白,就明白,这个Mapper接口 ......
作者:肥朝
简单使用
这是一个简单的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等高并发分布式、大数据、机器学习等技术。
上一篇: vueSSR渲染原理
下一篇: 排污阀工作原理(图)