添加依赖: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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>gdou.laiminghai</groupId>
<artifactId>springboot-mybatis-start</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>springboot-mybatis-start</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.10.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<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>1.3.1</version>
</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>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
配置:application.yml
#运行端口
server:
port: 8081
#数据源配置
spring:
datasource:
url: jdbc:mysql://localhost:3306/pre_worker?useUnicode=true&characterEncoding=utf8
driver-class-name: com.mysql.jdbc.Driver
username: root
password: mysql
#打印SQL语句
logging:
level:
gdou.laiminghai.mapper: debug
数据库及实体类:
数据库表格:
CREATE TABLE t_user(
id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255) ,
password VARCHAR(255) ,
phone VARCHAR(255)
)
实体类:
public class User {
private Integer id;
private String name;
private String password;
private String phone;
//省略getter和setter方法
}
Mapper编写:UserMapper.java
@Mapper
public interface UserMapper {
@Insert("INSERT INTO users2(NAME, PASSWORD, PHONE) VALUES(#{name}, #{password}, #{phone})")
@Options(useGeneratedKeys = true,keyProperty = "id",keyColumn = "id")
int insertByUser(User user);
@Select("SELECT * FROM users2 WHERE PHONE = #{phone}")
@Results(id = "userResult",value = {
@Result(property = "id",column = "id"),
@Result(property = "name",column = "name"),
@Result(property = "password",column = "password"),
@Result(property = "phone",column = "phone")
})
User findUserByPhone(@Param("phone") String phone);
@Update("UPDATE users2 SET NAME = #{name}, PASSWORD = #{password} WHERE PHONE = #{phone}")
void update(User user);
@Delete("DELETE FROM users2 WHERE ID = #{id}")
void delete(Integer id);
@ResultMap("userResult")
@Select("SELECT * FROM users2")
List<User> findAll();
}
Controller编写:UserController.java
@RestController
@RequestMapping("/user")
@SuppressWarnings("all")
public class UserController {
@Autowired
private UserMapper userMapper;
@PostMapping("/")
public User addUser(User user){
userMapper.insertByUser(user);
return user;
}
@GetMapping("/list/{phone}")
public User findUserByPhone(@PathVariable("phone")String phone){
return userMapper.findUserByPhone(phone);
}
@PatchMapping("/")
public User updateUser(User user){
userMapper.update(user);
return userMapper.findUserByPhone(user.getPhone());
}
@DeleteMapping("/")
public int deleteUser(int id){
userMapper.delete(id);
return id;
}
@GetMapping("/list/all")
public List<User> findAll(){
return userMapper.findAll();
}
}
测试可使用Postman测试。