文章目录
Mybatis 简介
什么是mybatis? 我们来看看官网是怎么说的。
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
简而言之,使用MyBatis可以让我们更加专注于 SQL 的编写,不再去关注注册驱动、获取连接、执行 SQL、释放资源等操作。
一、Mybatis环境搭建
为了更好的理解MyBatis繁多的标签,本文将基于XML的方式搭建。本文基于mybatis 3.4.x 进行分析。
1.源码下载
https://github.com/mybatis/mybatis-3/tree/3.4.x
2.导入idea
3.添加MySql依赖(依据自己实际使用的数据库)
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>
二、Mybatis 简单示例
1.在项目的test包中新建自己的测试包
2. 创建mybatis配置文件mybatis-config.xml
<?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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/sakila"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<!-- mybatis 映射文件-->
<mappers>
<mapper resource="org/apache/ibatis/mytest/mapper/ActorMapper.xml"/>
</mappers>
</configuration>
3. 创建POJO
public class Actor {
private int actorId;
private String firstName;
private String lastName;
private Date lastUpdate;
... 省略set get
}
4. 创建Mapper
public interface ActorMapper {
List<Actor> getActor(@Param("id")int id);
}
5. 创建Mapper XML
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.apache.ibatis.mytest.mapper.ActorMapper">
<select id="getActor" resultType="org.apache.ibatis.mytest.entity.Actor">
SELECT actor_id actorId , first_name firstName, last_name lastName , last_update lastUpdate
from actor
where actor_id = #{id}
</select>
</mapper>
6. 创建Test.java
public static void main(String[] args) throws IOException {
//1、读取配置文件
String resource = "org/apache/ibatis/mytest/config/mybatis-config.xml";
Reader reader = Resources.getResourceAsReader(resource);
// 2 创建 SqlSessionFactory 工厂:使用 SqlSessionFactoryBuilder 构建者
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);
// 3 使用工厂生产 SqlSession 对象
SqlSession sqlSession = factory.openSession();
// 4 使用 SqlSession 创建 Mapper 的代理对象
ActorMapper mapper = sqlSession.getMapper(ActorMapper.class);
// 5 使用代理对象执行方法
List<Actor> actorList = mapper.getActor(3);
for (Actor actor : actorList) {
System.out.println(actor);
}
// 6 释放资源
sqlSession.close();
reader.close();
}
7.测试结果
看到如下截图所示内容说明mybatis 源码环境搭建成功。下一篇将正式开始源码的分析。