Spring Boot整合MyBatis
pom.xml
<parent>
<artifactId>spring-boot-starter-parent</artifactId>
<groupId>org.springframework.boot</groupId>
<version>2.3.4.RELEASE</version>
</parent>
<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.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
实体类
import lombok.Data;
@Data
public class User {
private Integer id;
private String username;
private String password;
private String age;
}
创建UserRepository
import org.example.entity.User;
import java.util.List;
public interface UserRepository {
public List<User> findAll();
public User findById(Integer id);
public int save(User user);
public int update(User user);
public int deleteById(Integer id);
}
/resources/mapping创建UserRepository.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="org.example.mybatis.repository.UserRepository">
<select id="findAll" resultType="User">
select * from t_user
</select>
<select id="findById" parameterType="java.lang.Integer" resultType="User">
select * from t_user where id=#{id}
</select>
<insert id="save" parameterType="User">
insert into t_user (username,password,age) values(#{username},#{password},#{age})
</insert>
<update id="update" parameterType="User">
update t_user set username=#{username},password=#{password},age=#{age} where id=#{id}
</update>
<delete id="deleteById">
delete from t_user where id=#{id}
</delete>
</mapper>
创建Handler
import org.example.entity.User;
import org.example.mybatis.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/user")
public class UserHandler {
@Autowired
private UserRepository userRepository;
@GetMapping("/findAll")
public List<User> findAll(){
return userRepository.findAll();
}
@GetMapping("/findById/{id}")
public User findById(@PathVariable("id") Integer id){
return userRepository.findById(id);
}
@PostMapping("/save")
public int save(@RequestBody User user){
return userRepository.save(user);
}
@PutMapping("/update")
public int update(@RequestBody User user){
return userRepository.update(user);
}
@DeleteMapping("/deleteById/{id}")
public int deleteById(@PathVariable("id") Integer id){
return userRepository.deleteById(id);
}
}
配置文件
spring:
datasource:
url: jdbc:mysql://ip:port/test?useUnicode=true&characterEncoding=UTF-8
driver-class-name: com.mysql.cj.jdbc.Driver
username: username
password: password
mybatis:
mapper-locations: classpath:/mapping/*.xml
type-aliases-package: org.example.entity
启动类
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("org.example.mybatis.repository")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class,args);
}
}