二、springboot整合mybatis demo
1、创建users表
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) DEFAULT NULL,
`password` varchar(255) DEFAULT NULL,
`name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1247 DEFAULT CHARSET=utf8;
2、链接数据库配置
mybatis全局配置文件
src/main/resources/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>
</configuration>
mybatis局部配置文件
src/main/resources/application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/test?serverTimezone=UTC&
useUnicode=true&characterEncoding=utf-8&useSSL=true
spring.datasource.username=root
spring.datasource.password=root
#在 Spring Boot 2.1.0 中,com.mysql.jdbc.Driver已经过期,推荐使用 com.mysql.cj.jdbc.Driver
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#MyBatis的配置
#设置mybatis的配置文件路径,默认是在resources的目录
mybatis.config-location=classpath:mybatis/mybatis-config.xml
#设置mybatis下面的mapper映射文件路径,默认是在resources的目录
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml
#设置项目中实体类包路径;
mybatis.type-aliases-package=com.study.springboot_mybatis01.entity
#展示sql语句
logging.level.com.study.springboot_mybatis01.repository.UsersDao=debug
3、UsersMapper.xml
src/main/resources/mybatis/mapper/UsersMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.study.springboot_mybatis01.repository.UsersDao">
<select id="findById" resultType="Users" parameterType="Integer">
SELECT id,username,password,name FROM USERS WHERE ID=#{id}
</select>
<select id="findAll" resultType="Users">
SELECT id,username,password,name FROM USERS
</select>
</mapper>
3、pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.7.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.study</groupId>
<artifactId>springboot_mybatis01</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot_mybatis01</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
4、Users.java
src/main/java/com/study/springboot_mybatis01/entity/Users.java
public class Users {
private Integer id;
private String username;
private String password;
private String name;
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 getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Users{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
", name='" + name + '\'' +
'}';
}
}
5、UsersDao.java
src/main/java/com/study/springboot_mybatis01/repository/UsersDao.java
public interface UsersDao {
List<Users> findAll();
Users findById(int id);
// @Select("select id,username,password,name from users where name like '%${name}%'")
@Select("select id,username,password,name from users where name like #{name}")
Users findByName(String name);
}
6、单元测试
src/test/java/com/study/springboot_mybatis01/SpringbootMybatis01ApplicationTests.java
@SpringBootTest
class SpringbootMybatis01ApplicationTests {
@Resource
private UsersDao usersDao;
@Test
void contextLoads() {
// System.out.println(usersDao.findAll());
// System.out.println("----------------------------");
// System.out.println(usersDao.findById(1242));
// System.out.println("----------------------------");
//使用$占位符,如果使用模糊查找,直接在sql语句上进行拼接
// System.out.println(usersDao.findByName("德"));
//使用#占位符,如果使用模糊查找,需要传值就加上百分号
System.out.println(usersDao.findByName("%德%"));
}
}