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

6 篇文章 0 订阅
3 篇文章 0 订阅
<!-mybatis-plus依赖->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.2</version>
</dependency>
<!-分页插件->
<dependency>
   <groupId>com.github.pagehelper</groupId>
   <artifactId>pagehelper-spring-boot-starter</artifactId>
   <version>1.4.5</version>
</dependency>
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可选导入 非必要
//    <dependency>
//         <groupId>org.projectlombok</groupId>
//        <artifactId>lombok</artifactId>
//        <optional>true</optional>
//    </dependency>
}


/**
 * mapper
 */
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.web_wechat.domain.User;
public interface UserMapper extends BaseMapper<User> {
}

/**
 * userService接口
 */
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.web_wechat.domain.User;
public interface UserService extends IService<User> {
}


/**
 * 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<UserMapper, User> implements UserService {
}
@RestController
@RequestMapping("/user")
public class UserController {
    @Resource
    private UserService userService;

    
}

注意:

        

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

请将所有mapper接口放在同一个包下,便于扫描

正文开始:

        

/**
     * 查询用户集合
     * @return
     */
    @GetMapping("list")
    public AjaxResult list(){
        List<User> list1 = userService.list(
                Wrappers.<User>lambdaQuery()
                        .eq(User::getUserName,"张三")
                        .eq(User::getAdmin,true)
        );
        return AjaxResult.success(list1);
        //查询全部
//        List<User> list = userService.list();
//        return AjaxResult.success(list);

//        查询所有用户名为张三,并且admin=true的用户  mysql常量: false=0 true = 1
//        admin为true 也就是admin = 1


        //分页查询
//        List<User> list2 = userService.list();
//        //从第一页开始 向后查询10条
//        PageHelper.startPage(1, 10);
//        PageInfo<Object> 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<String, Object>
{
    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);
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值