搭建Mybatis框架
1、添加驱动包
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.40</version>
</dependency>
2、创建 mybatis.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/express"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<!-- 指定maper⽂件的路径(maven项⽬从resources源⽂件夹下找资源)-->
<mappers>
<mapper resource="包名/mapper⽂件名"/>
</mappers>
</configuration>
mapper的配置文件在后面
3、编写 bean包以及dao接口
4、编写StudentMapper.xml文件
xml的头信息可以根据mybatis.xml的头信息修改
namespace 定义接口的完整路径
id是方法名
resultType是返回值的类型
5、完善mybatis.xml文件,将StudentMapper.xml文件初始化在mybatis.xml文件中
6、编写Test文件 进行测试
先对mybatis.xml文件进行解析,获取流对象,然后寻找流对象和SQLsession之间的联系。mybatis框架 提供了创建SQLsession的工厂,但是流对象只和创建工厂的builder有关系,所以先获取创建工厂的builder。获取了builder之后,就可以创建工厂了,通过工厂再创建SQLsession对象
package com.atshiyou;
import com.atshiyou.bean.Student;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.Reader;
import java.util.List;
public class Test {
public static void main(String[] args) throws Exception {
// 1、加载配置文件
Reader reader = Resources.getResourceAsReader("mybatis.xml");
//2、得到SqlSessionFactoryBuilder
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory build = builder.build(reader);
//3、得到session对象
SqlSession session = build.openSession();
// 4、操作SQL
List<Student> lists = session.selectList("com.atshiyou.dao.StudentDao.findAll");//方法参数是被调取
//5、遍历
for (Student student : lists){
System.out.println(student);
}
session.close();
reader.close();
}
}
mybatis的执行过程
1、读取xml文件,文件中指定了两个事情,第一个指定连接数据库的信息(进行数据库的连接),另外一个指定mapper文件路径——>加载mapper文件,mapper文件可以生成对应关系,当前的SQL语句和当前方法的对应关系。
2、如何找到SQL语句,可以理解为namespace+id作为key,然后value值就是SQL语句
3、和之前使用JDBC连接数据库的过程相比:使用mybatis框架的程序员只需要关心SQL语句的编写。至于说怎么去连接数据库,怎么去打开连接,怎么去处理结果集,都交给框架处理