在 pom.xml 文件添加如下依赖:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.3</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.23</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
<version>8.0.21</version>
</dependency>
在 application.properties 文件中添加如下配置:
# 配置数据库连接池类型、数据库地址、用户名和密码
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.url=jdbc:mysql://xxx.xxx.xxx.xxx:3306/example?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8
在 example 数据库创建 user 表,内容如下:
新建一个 bean
包,在其中写入 Users
类:
public class Users {
private Integer id;
private String username;
private String address;
@Override
public String toString() {
return "Users{" +
"id=" + id +
", username=‘" + username + ‘\‘‘ +
", address=‘" + address + ‘\‘‘ +
‘}‘;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
新建一个 mapper
包,在其中写入 UserMapper
接口:
public interface UserMapper {
List<Users> getAllUsers();
}
在 UserMapper
接口中,申明一个 getAllUsers()
方法,用于查询所有的 user
信息。
为了使该接口类会生效,需要在启动类添加 @MapperScan
注解:
@SpringBootApplication
@MapperScan(basePackages = "com.example.mybatis.mapper")
public class MybatisApplication {
public static void main(String[] args) {
SpringApplication.run(MybatisApplication.class, args);
}
}
关于注解@Mapper
和注解@MapperScan
的用法和区别,参考文章:
再在 mapper
包,创建一个 UserMapper.xml
文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://www.mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mybatis.mapper.UserMapper">
<select id="getAllUsers" resultType="com.example.mybatis.bean.Users">
select * from user;
</select>
</mapper>
这里,标签<mapper></mapper>
中的namespace="com.example.mybatis.mapper.UserMapper"
建立Mapper接口与Mapper.xml文件之间的映射关系。
标签 <select></select>
,表示这是映射查询语句:
属性id="getAllUsers"
映射 mapper
接口中定义好的方法
属性resultType="com.example.mybatis.bean.Users"
声明该查询语句返回的数据类型,这里的返回类型是javaBean
关于 Mapper.xml 文件的配置详解,参考文章:Mapper XML文件 配置详解
关于 Mapper.xml 文件中 resultType 值说明,参考文章:mybatis里面Mapper的xml文件中resultType值说明
为了使 Mapper.xml
文件生效,需要在 pom.xml
文件中的<build>
标签内,配置一下:
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
在测试类中,写入如下测试方法:
@SpringBootTest
class MybatisApplicationTests {
@Autowired
UserMapper userMapper;
@Test
void contextLoads() {
List<Users> allUsers = userMapper.getAllUsers();
System.out.println(allUsers);
}
}
运行该测试方法,效果如下:
Mybatis 的特点,主要在于 mapper
接口类和 mapper.xml
文件之间建立的强大映射关系。
要使 mapper
接口生效,需要在启动类中使用注解@MapperScan
配置一下。
要使 mapper.xml
文件生效,需要在pom.xml
文件中配置一下。
mapper
接口类和 mapper.xml
文件的编写,是使用 Mybatis 的重点和难点。
每天学习一点点,每天进步一点点。
原文:https://www.cnblogs.com/youcoding/p/13856683.html