SpringBoot实现增删改查
实现新增
UserController
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserMapper userMapper;
@PostMapping
public Integer save(@RequestBody User user){
//@RequestBody将前台json转换为user对象
return userMapper.insert(user);
}
@GetMapping
public List<User> index(){
return userMapper.findAll();
}
}
UserMapper
@Insert("INSERT into sys_user(username,password,nickname,email,phone,address) VALUES (#{username},#{password},#{nickname},#{email},#{phone},#{address});")
int insert(User user);
SQL
INSERT into sys_user(username,password,nickname,email,phone,address)
VALUES("zhu","123456","猪头","zhu@qq.com","13677798889","高老庄");
postman测试接口
实现修改
进行判断用户的id是否为空,来分清楚是新增还是修改
UserController
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserMapper userMapper;
@Autowired
private UserService userService;
/**
* 新增 or 更新
*/
@PostMapping
public Integer save(@RequestBody User user){
//@RequestBody将前台json转换为user对象
return userService.save(user);
}
@GetMapping
public List<User> index(){
return userMapper.findAll();
}
}
UserService
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public int save(User user){
if(user.getId() == null){
//user没有id,表示是新增
return userMapper.insert(user);
}else{
//否则,为更新
return userMapper.update(user);
}
}
UserMapper
@Mapper
public interface UserMapper {
/***
* 查询所有数据
* @return List<User>
*/
@Select("select * from sys_user")
List<User> findAll();
/**
* 添加数据
* @param user
* @return
*/
@Insert("INSERT into sys_user(username,password,nickname,email,phone,address) VALUES (#{username},#{password},#{nickname},#{email},#{phone},#{address})")
int insert(User user);
/**
* 更新数据
* @param user
* @return
*/
int update(User user);
}
为了防止修改时,将一些数据置空,使用动态sql
User.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="com.example.springboot.mapper.UserMapper">
<update id="update">
update sys_user
<set>
<if test="username != null">
username=#{username},
</if>
<!-- <if test="password != null">-->
<!-- password=#{password}-->
<!-- </if>-->
<if test="nickname != null">
nickname=#{nickname},
</if>
<if test="email != null">
email=#{email},
</if>
<if test="phone != null">
phone=#{phone},
</if>
<if test="address != null">
address=#{address}
</if>
</set>
<where>
id = #{id}
</where>
</update>
</mapper>
使用postman测试
出现错误
添加配置文件
mybatis:
mapper-locations: mapper/*.xml
配置文件 增加控制台输出显示
mybatis:
mapper-locations: mapper/*.xml #扫描所有mybatis的xml文件
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
删除
UserController
@DeleteMapping("/{id}")
public Integer delete(@PathVariable Integer id){
return userMapper.deleteById(id);
}
UserMapper
@Delete("delete from sys_user where id = #{id}")
Integer deleteById(@Param("id") Integer id);
测试