springboot整合mybatis-plus详细教程(附分页插件简单用法)



    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;

    
}

注意:

        springboot整合mybatis-plus详细教程(附分页插件简单用法)_第1张图片

 在启动类上加入mapperScan注解 里边的内容是一个字符串,是mapper接口包的项目路径也就是这里

springboot整合mybatis-plus详细教程(附分页插件简单用法)_第2张图片

请将所有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 page = new PageInfo<>(list2);
//        return AjaxResult.success(page);
    } 
  

    //新增
    @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);
    }
}

你可能感兴趣的:(springboot,mybatis,java,spring,boot,mybatis,java)