MyBatis
1. 介绍
java里的数据库框架,封装了JDBC
下文中的所有介绍都会以mysql数据库为例
2. 创建第一个MyBatis工程
1)在idea中创建一个maven工程,添加MyBatis和JDBC依赖
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.10</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.29</version>
</dependency>
- 添加Mybatis配置文件
参考官网文档: https://mybatis.net.cn/getting-started.html
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="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers>
</configuration>
对配置文件中property标签的value值,我们可以直接修改,也可以采用添加配置文件的方式来赋值
下面介绍如何使用配置文件的方式来获取value值
在MyBatis配置文件同级目录下创建jdbc.properties配置文件,内容如下。
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/数据库名
username=用户名
password=密码
在MyBatis配置文件中在下添加properties标签,如下
<properties resource="jdbc.properties"/>
最终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>
<properties resource="jdbc.properties"/>
<environments default="development">
<environment id="development">
<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>
<mappers>
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers>
</configuration>
2)配置实体类和mapper
我目前数据库下有一张Student表,表的内容如下
1. 首先根据数据表创建实体类
在项目目录下新建entity包,新建Student类,添加get,set,构造方法
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Student {
private String sno;
private String sname;
private String ssex;
private Integer sage;
private String sdept;
}
2. 创建mapper接口
新建mapper包,添加StudentMapper接口
在其中添加一个获取全部学生的方法
public interface StudentMapper {
List<Student> selectAllStudent();
}
3)修改配置文件
1. 在配置文件目录(resource)下创建mapper文件夹
在其中添加StudentMapper.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="mappers.StudentMapper">
<select id="selectAllStudent" resultType="entity.Student">
select * from Student
</select>
</mapper>
2. 修改mybatis-config.xml
修改mapper标签的内容如下
<mappers>
<mapper resource="mappers/StudentMapper.xml"/>
</mappers>
4) 测试
在主类中添加如下代码
public class Main {
public static void main(String[] args) throws IOException {
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactoryBuilder sfb = new SqlSessionFactoryBuilder();
SqlSessionFactory sf = sfb.build(is);