- 首先搭建一个数据库(省略)
- 构建一个Maven项目,可以先构建一个空的Maven父工程项目(删除src目录),里面建立一系列子工程项目
- 在父工程的pom.xml文件中导入Maven依赖(这样以后子工程中的pom.xml文件中不用重复导入公共的依赖):
<dependencies>
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<!--mybatis-->
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.2</version>
</dependency>
<!--junit-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
- 编写Mybatis的核心配置文件mybatis-config.xml(存放在resource文件夹下,如图所示)
以下是配置文件的初始内容:
<?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核心配置文件-->
<configuration>
<!--设置配置文件位置-->
<properties resource="db.properties"/>
<!--default从众多environment中选择一个-->
<environments default="myEnvironment">
<!--可编写多个environment-->
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<!--xml中,‘&’需要被转义‘ & ’-->
<property name="url" value="jdbc:mysql://localhost:3307/yyl?useSSL=false&useUnicode=true&characterEncoding=UTF-8"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
<!--自己编写的环境,通过配置文件读取数据-->
<environment id="myEnvironment">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<!--每一个Mapper.xml文件都要在mybatis核心配置文件下注册-->
</configuration>
- 编写Mybatis工具类
public class MybatisUtils {
private static SqlSessionFactory sqlSessionFactory;
static{
try {
//此方法是使用xml构建sqlSessionFactory工具类
String resource = "mybatis-config.xml"; //设置配置文件路径
InputStream inputStream = Resources.getResourceAsStream(resource);
//SqlSessionFactory是由SqlSessionFactoryBuilder构建而成的
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
}catch (Exception e){
e.printStackTrace();
}
}
//构造获取sqlSession类的方法
public static SqlSession getSqlSession(){
return sqlSessionFactory.openSession();
}
}
【注】SqlSession的获取路径为:SqlSessionFactoryBulider->SqlSessionFactory->SqlSession
SqlSessionFactoryBulider可以从XML配置文件或者一个预先定制的Configuration的实例构建出SqlSessionFactory的实例
SqlSession完全包含了面向数据库执行SQL命令所需的所有方法