com.baomidou
mybatis-plus-boot-starter
3.5.2
com.github.pagehelper
pagehelper-spring-boot-starter
1.4.5
package com.example.web_wechat.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter //get方法
@Setter //set方法
public class User {
@TableId(type = IdType.AUTO)
private Long userId;
private String userName;
private String password;
private String nickName;
private Boolean admin;
private String icon;
// lombok可选导入 非必要
//
// org.projectlombok
// lombok
// true
//
}
/**
* mapper
*/
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.web_wechat.domain.User;
public interface UserMapper extends BaseMapper {
}
/**
* userService接口
*/
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.web_wechat.domain.User;
public interface UserService extends IService {
}
/**
* userService实现类
*/
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.web_wechat.domain.User;
import com.example.web_wechat.mapper.UserMapper;
import com.example.web_wechat.service.UserService;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImp extends ServiceImpl implements UserService {
}
@RestController
@RequestMapping("/user")
public class UserController {
@Resource
private UserService userService;
}
注意:
在启动类上加入mapperScan注解 里边的内容是一个字符串,是mapper接口包的项目路径也就是这里
请将所有mapper接口放在同一个包下,便于扫描
正文开始:
/**
* 查询用户集合
* @return
*/
@GetMapping("list")
public AjaxResult list(){
List list1 = userService.list(
Wrappers.lambdaQuery()
.eq(User::getUserName,"张三")
.eq(User::getAdmin,true)
);
return AjaxResult.success(list1);
//查询全部
// List list = userService.list();
// return AjaxResult.success(list);
// 查询所有用户名为张三,并且admin=true的用户 mysql常量: false=0 true = 1
// admin为true 也就是admin = 1
//分页查询
// List list2 = userService.list();
// //从第一页开始 向后查询10条
// PageHelper.startPage(1, 10);
// PageInfo
//新增
@PostMapping("save")
public AjaxResult save(@RequestBody User user) {
userService.save(user);
return AjaxResult.success();
}
/**
* 修改
* 请注意,updateById方法是根据用户id修改字段
* 除id外,所有的字段都会修改为传入的user对象
* 所以不希望修改的字段,请通知前端和修改前保持一致,不要传null
* 此方法有巨大安全风险,如果对安全性有要求的项目,不要这么使用
*
* @param user
* @return
*/
@PutMapping
public AjaxResult update(@RequestBody User user){
userService.updateById(user);
return AjaxResult.success(user);
}
/**
* 根据用户id删除
* @param userID 用户id
* @return
*/
@DeleteMapping("/{userID}")
public AjaxResult deleteById(@PathVariable Long userID){
if(userService.removeById(userID)){
return AjaxResult.success();
}
return AjaxResult.error();
}
严格意义上来说,请根据删除方法的逻辑来执行return
也就是判断一下sql是否执行成功
附AjaxResult的类
package com.example.web_wechat.util;
import org.springframework.http.HttpStatus;
import org.springframework.util.StringUtils;
import java.util.HashMap;
/**
* 操作消息提醒
*
* @author yanxi
*/
public class AjaxResult extends HashMap
{
private static final long serialVersionUID = 1L;
/** 状态码 */
public static final String CODE_TAG = "code";
/** 返回内容 */
public static final String MSG_TAG = "msg";
/** 数据对象 */
public static final String DATA_TAG = "data";
/**
* 初始化一个新创建的 AjaxResult 对象,使其表示一个空消息。
*/
public AjaxResult()
{
}
/**
* 初始化一个新创建的 AjaxResult 对象
*
* @param code 状态码
* @param msg 返回内容
*/
public AjaxResult(int code, String msg)
{
super.put(CODE_TAG, code);
super.put(MSG_TAG, msg);
}
/**
* 初始化一个新创建的 AjaxResult 对象
*
* @param code 状态码
* @param msg 返回内容
* @param data 数据对象
*/
public AjaxResult(int code, String msg, Object data)
{
super.put(CODE_TAG, code);
super.put(MSG_TAG, msg);
if (!StringUtils.isEmpty(data))
{
super.put(DATA_TAG, data);
}
}
/**
* 方便链式调用
*
* @param key
* @param value
* @return
*/
@Override
public AjaxResult put(String key, Object value)
{
super.put(key, value);
return this;
}
/**
* 返回成功消息
*
* @return 成功消息
*/
public static AjaxResult success()
{
return AjaxResult.success("操作成功");
}
/**
* 返回成功数据
*
* @return 成功消息
*/
public static AjaxResult success(Object data)
{
return AjaxResult.success("操作成功", data);
}
/**
* 返回成功消息
*
* @param msg 返回内容
* @return 成功消息
*/
public static AjaxResult success(String msg)
{
return AjaxResult.success(msg, null);
}
/**
* 返回成功消息
*
* @param msg 返回内容
* @param data 数据对象
* @return 成功消息
*/
public static AjaxResult success(String msg, Object data)
{
return new AjaxResult(HttpStatus.OK.value(), msg, data);
}
/**
* 返回错误消息
*
* @return
*/
public static AjaxResult error()
{
return AjaxResult.error("操作失败");
}
/**
* 返回错误消息
*
* @param msg 返回内容
* @return 警告消息
*/
public static AjaxResult error(String msg)
{
return AjaxResult.error(msg, null);
}
/**
* 返回错误消息
*
* @param msg 返回内容
* @param data 数据对象
* @return 警告消息
*/
public static AjaxResult error(String msg, Object data)
{
return new AjaxResult(HttpStatus.INTERNAL_SERVER_ERROR.value(), msg, data);
}
/**
* 返回错误消息
*
* @param code 状态码
* @param msg 返回内容
* @return 警告消息
*/
public static AjaxResult error(int code, String msg)
{
return new AjaxResult(code, msg, null);
}
}