整个项目的目录结构如下:
首先在pom.xml中添加依赖和指定编码版本。
<!--引入相关依赖-->
<dependencies>
<!--引入mybatis依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.4</version>
</dependency>
<!--引入mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<!--引入junit-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
<!--指定编码和版本-->
<build>
<plugins>
<!-- 设置编译版本为11 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>11</source>
<target>11</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
新建一个jdbc.properties文件。
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql:///homework_db
jdbc.username=root
jdbc.password=123456
新建Mybatis的核心配置文件sqlMapConfig.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>
<!--加载properties文件-->
<properties resource="jdbc.properties"></properties>
<!--设置别名-->
<typeAliases>
<package name="com.homework.domain"/>
</typeAliases>
<!--environments: 运行环境-->
<environments default="development">
<environment id="development">
<!--当前的事务事务管理器是JDBC-->
<transactionManager type="JDBC"></transactionManager>
<!--数据源信息 POOLED:使用mybatis的连接池-->
<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>
<!--批量加载映射-->
<package name="com.homework.mapper"/>
</mappers>
</configuration>
映射配置文件DeptMapper.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="com.homework.mapper.DeptMapper">
<select id="findAllDept" resultType="Dept">
select * from tb_dept;
</select>
<select id="findDeptById" parameterType="int" resultType="Dept">
select * from tb_dept where dept_id = #{dept_id}
</select>
</mapper>
DeptTest中就是加载Mybatis的核心配置文件,然后对数据库进行增删查改。这里用的是Mapper代理的方式。
@Test
public void findAllDeptTest() throws IOException {
/**
* 加载mybatis的核心配置文件,获取sqlSession对象
*/
InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
/**
* 获取DeptMapper的代理对象,调用方法
*/
DeptMapper mapper = sqlSession.getMapper(DeptMapper.class);
List<Dept> allDept = mapper.findAllDept();
for (Dept dept : allDept) {
System.out.println(dept);
}
}