一、数据库操作
传统方式:
- 加载驱动
- 创建连接(Connection)
- 创建Statement
- 执行SQL语句
- 处理结果集(ResultSet)
- 关闭连接
如果我们按照传统方式操作数据库,我们会不断的在2-6这几步来回的切换,会编写大量的重复性代码,极大地降低了开发效率。所以各种各样的持久层框架应运而生,本文将重点分析Mybatis这一个框架。
二、什么是Mybatis
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
上边这段话取自官网,接下来我们看看Mybatis是怎么操作数据库的。
- 配置文件(数据库的连接信息)
- 编写mapper文件(存放sql语句)
- 编写对应的mapper接口
- 加载配置文件
- 获取SqlSessionFactory
- 获取Session
- 获取对应Mapper对象
- 执行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);
就是这几行代码就可以搞定,这也是分析源码的入口。
- 通过配置文件构建SqlSessionFactory
- 从SqlSessionFactory中获取SqlSession对象
- 通过SqlSession操作数据库
接下来我们也将围绕着这个步骤来分析,然后在一点点展开。
以上,有任何不对的地方,请指正,敬请谅解。