這篇文章是介紹 Spring Boot整合mybatis的,一個簡單的增刪改查。java
建表
DROP TABLE IF EXISTS tbl_user;mysql
CREATE TABLE tbl_user (
id int(11) NOT NULL AUTO_INCREMENT,
user_name varchar(255) NOT NULL,
password varchar(255) NOT NULL,
age int(11) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;web
在pom文件裏添加mybatis依賴:
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>spring
在application.properties配置文件中配置數據源、Mybatis的實體和配置文件路徑:
spring.datasource.url=jdbc:mysql://localhost:3306/springboot_demo
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driversql
mybatis.typeAliasesPackage: cn.yideng.mybatis.entity
mybatis.mapperLocations: classpath:mapper/*.xmlspringboot
創建包結構:entity dao service controller
建立一個實體類:
public class User {mybatis
private Integer id;
private String userName;
private String password;
private Integer age;
public User() {}app
public User(Integer id, String userName, String password, Integer age) {
this.id = id;
this.userName = userName;
this.password = password;
this.age = age;
}ide
// 省略 getter/setter, toString()
}
DAO接口:
public interface UserDao {spring-boot
List<User> findAll(); //查詢全部記錄
void addUser(User user); // 新增
void updateUser(User user); // 修改
int deleteUser(Integer id); //根據id刪除
}
Service接口:
public interface UserService {
List<User> findAll();
void addUser(User user);
void updateUser(User user);
int deleteUser(Integer id);
}
Service接口的實現類:
@Service(value="userService")
public class UserServiceImpl implements UserService{
@Autowired
private UserDao userDao;
@Override
public List<User> findAll() {
return userDao.findAll();
}
@Override
public void addUser(User user) {
userDao.addUser(user);
}
@Override
public void updateUser(User user) {
userDao.updateUser(user);
}
@Override
public int deleteUser(Integer id) {
return userDao.deleteUser(id);
}
}
```
UserMapper.xml映射文件:路徑是 \resources\mapper\UserMapper.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="cn.yideng.mybatis.dao.UserDao">
<resultMap id="userResultMap" type="cn.yideng.mybatis.entity.User">
<id column="id" property="id" jdbcType="INTEGER" />
<result column="user_name" property="userName" jdbcType="VARCHAR" />
<result column="password" property="password" jdbcType="VARCHAR" />
<result column="age" property="age" jdbcType="INTEGER" />
</resultMap>
<sql id="user_column_list">
id, user_name, password, age
</sql>
<select id="findAll" resultMap="userResultMap">
select
<include refid="user_column_list" />
from tbl_user
</select>
<insert id="addUser" parameterType="cn.yideng.mybatis.entity.User">
insert into tbl_user (user_name, password, age)
values (
#{userName,jdbcType=VARCHAR},
#{password,jdbcType=VARCHAR},
#{age,jdbcType=INTEGER})
</insert>
<update id="updateUser" parameterType="cn.yideng.mybatis.entity.User">
update tbl_user set
user_name= #{userName,jdbcType=VARCHAR},
password = #{password,jdbcType=VARCHAR},
age= #{age,jdbcType=INTEGER}
where id= #{id,jdbcType=INTEGER}
</update>
<delete id="deleteUser" parameterType="java.lang.Integer">
delete from tbl_user where id= #{id,jdbcType=INTEGER}
</delete>
</mapper>
Controller類
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping(value = "/user")
public class UserController {
@Autowired
private UserService userService;
@PostMapping(value = "/add")
private void addUser(User user){
userService.addUser(user);
}
@GetMapping("/getList")
private List<User> getAllUser(){
return userService.findAll();
}
@PutMapping(value = "update/{id}")
private void updateUser(User user){
userService.updateUser(user);
}
@DeleteMapping(value = "delete/{id}")
private int deleteUser(Integer id){
return userService.deleteUser(id);
}
}
修改啓動類,添加@MapperScan註解,使其能夠掃描DAO層接口:
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
@EnableAutoConfiguration
@MapperScan("cn.yideng.mybatis.dao")
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
而後用postman 模擬測試,