Mybatis源码分析一

一、数据库操作

传统方式:

  1. 加载驱动
  2. 创建连接(Connection)
  3. 创建Statement
  4. 执行SQL语句
  5. 处理结果集(ResultSet)
  6. 关闭连接
    如果我们按照传统方式操作数据库,我们会不断的在2-6这几步来回的切换,会编写大量的重复性代码,极大地降低了开发效率。所以各种各样的持久层框架应运而生,本文将重点分析Mybatis这一个框架。

二、什么是Mybatis

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

上边这段话取自官网,接下来我们看看Mybatis是怎么操作数据库的。

  1. 配置文件(数据库的连接信息)
  2. 编写mapper文件(存放sql语句)
  3. 编写对应的mapper接口
  4. 加载配置文件
  5. 获取SqlSessionFactory
  6. 获取Session
  7. 获取对应Mapper对象
  8. 执行mapper方法(操作数据库)
    以上步骤需要改动的,重复性最多的也就是mapper文件的编写,也就是编写sql语句,相比传统的方式,不需要去重复的获取链接、获取statement、处理结果集、关闭连接这些重复性工作,只需要把精力集中在编写sql语句上即可。

三、配置文件

Mybatis中不可以缺少的,也是最重要的就是配置文件,第一步也是需要编写配置文件
在这里插入图片描述截图自官网

具体每一个属性代表什么意思可以直接去官网查看。

四、简单Demo

配置configuration:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <properties resource="resources/jdbc.properties"/>
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="resources/UserMapper.xml"/>
    </mappers>
</configuration>

编写UserMapper.class接口和UserMapper.xml文件,接下来就可以连接数据库,进行增删改查。

    InputStream in=Test.class.getResourceAsStream("/resources/config.xml");
    SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(in);
    SqlSession session=sqlSessionFactory.openSession(true);
    User user=session.selectOne("org.apache.ibatis.UserMapper.selectUser",1);
    System.out.println(user);

就是这几行代码就可以搞定,这也是分析源码的入口。

  1. 通过配置文件构建SqlSessionFactory
  2. 从SqlSessionFactory中获取SqlSession对象
  3. 通过SqlSession操作数据库
    接下来我们也将围绕着这个步骤来分析,然后在一点点展开。

以上,有任何不对的地方,请指正,敬请谅解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜鸟+1024

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值