图解源码 | MyBatis的Mapper原理

栏目: 数据库 · 发布时间: 6年前

内容简介:提到看源码,很多同学内心的恐惧的,其实这个从人性的角度来说是非常正常的,因为人们对未知的事物,都是非常恐惧的,其次,你内心可能始终觉得,好像不会原理也还是能工作啊,你的潜意识里没有强烈的欲望.从阅读源码的经历来说,Java三大框架SSM中,Mybatis的源码是最适合入门的.这是一个简单的Mybatis保存对象的例子但是在实际中,我们都不是这样操作的,我们是通过Mapper接口,调用接口方法,就能实现CRUD操作,那么关键是,这个接口究竟做了什么事,才是我们关心的.

提到看源码,很多同学内心的恐惧的,其实这个从人性的角度来说是非常正常的,因为人们对未知的事物,都是非常恐惧的,其次,你内心可能始终觉得,好像不会原理也还是能工作啊,你的潜意识里没有强烈的欲望.从阅读源码的经历来说,Java三大框架SSM中,Mybatis的源码是最适合入门的.

简单使用

这是一个简单的Mybatis保存对象的例子

@Test
public void testSave() throws Exception {
    //创建sessionFactory对象
    SqlSessionFactory sf = new SqlSessionFactoryBuilder().
            build(Resources.getResourceAsStream("mybatis-config.xml"));
    //获取session对象
    SqlSession session = sf.openSession();
    //创建实体对象
    User user = new User();
    user.setUsername("toby");
    user.setPassword("123");
    user.setAge(23);
    //保存数据到数据库中
    session.insert("com.toby.mybatis.domain.UserMapper.add", user);
    //提交事务,这个是必须要的,否则即使 sql 发了也保存不到数据库中
    session.commit();
    //关闭资源
    session.close();
}
复制代码
<mapper namespace="com.toby.mybatis.domain.UserMapper">
    <!--#{}在传入的对象中找对应的属性值-->
    <!--parameterType传入的参数是什么类型-->
    <insert id="add" parameterType="com.toby.mybatis.domain.User">
        INSERT INTO USER (username,password,age) VALUES (#{username},#{password},#{age})
    </insert>
</mapper>
复制代码

引出主题

但是在实际中,我们都不是这样操作的,我们是通过Mapper接口,调用接口方法,就能实现CRUD操作,那么关键是,这个接口究竟做了什么事,才是我们关心的.

只要把下面这段代码究竟发生了什么事弄明白,就明白,这个Mapper接口究竟做了什么事.

public void testGetObject() throws Exception {
    SqlSession session = MybatisUtil.openSession();

    UserMapper mapper = session.getMapper(UserMapper.class);
    User user = mapper.get(5L);

    System.out.println(user);
    session.close();
}
复制代码
public interface UserMapper {

    public void add(User user);
    public User get(Long id);
}
复制代码

流程图

但是我认为,一张流程图和时序图就看明白这期间所发生的事

图解源码 | MyBatis的Mapper原理
图解源码 | MyBatis的Mapper原理

写在最后

肥朝 是一个专注于 原理、源码、开发技巧的技术公众号,号内原创专题式源码解析、真实场景源码原理实战(重点)。 扫描下面二维码 关注肥朝,让本该造火箭的你,不再拧螺丝!

图解源码 | MyBatis的Mapper原理

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Cult of the Amateur

The Cult of the Amateur

Andrew Keen / Crown Business / 2007-6-5 / USD 22.95

Amateur hour has arrived, and the audience is running the show In a hard-hitting and provocative polemic, Silicon Valley insider and pundit Andrew Keen exposes the grave consequences of today’s......一起来看看 《The Cult of the Amateur》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

html转js在线工具
html转js在线工具

html转js在线工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具