mybatis-plus保姆级入门教程,手把手教你轻松实现增删改查

ps:如果有小伙伴图省事,可以使用代码生成器,超级方便,但由于此篇是入门级教学,那我就手把手带着大家手动创建控制器,分发器等文件吧,日后再带大家熟悉使用自动生成器,行吧?感兴趣的小伙伴也可以参考bug菌写的这篇《mybatis-plus代码生成器入门教学》,自己动手实战一下,很简单的。

2、引入完依赖之后,结合阿里开发规范,对业务逻辑进行分层,本着低耦合高内聚的目的而去。

mybatis-plus保姆级入门教程,手把手教你轻松实现增删改查

3、由于我前几期已经创建了一个 UserController 对吧,接着来创建实体类,UserService接口层,UserServiceImpl接口实现层,及最后的UserMapper 持久层。

UserEntity

  • **@TableName(“table_name”):**指定数据库表名。

  • **@TableId :**指定type = IdType.AUTO 表示数据库id为自增型。

  • **@TableField(value = “name”) :**指定数据库字段名。

  • 添加get set方法即可。

package com.example.demo.Entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; /** 用户基本信息实体 */ @TableName(“user”) public class UserEntity {

  • @TableId(value = “id”, type = IdType.AUTO) //表示该id为自增,新增时候不需要手动设置id。

private Integer id;

@TableField(value = “name”)

private String name;

@TableField(value = “age”)

private Integer age;

@TableField(value = “sex”)

private String sex;

@TableField(value = “address”)

private String address;

public Integer getId() {

return id;

} public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } }

**

mybatis-plus保姆级入门教程,手把手教你轻松实现增删改查

然后再多添加几条数据吧!方便后续查询接口浏览查询。

mybatis-plus保姆级入门教程,手把手教你轻松实现增删改查

UserService

编写两个接口!分别为不带参数与带一个参数,作为演示:具体代码如下

package com.example.demo.service;

import com.baomidou.mybatisplus.extension.service.IService;

import com.example.demo.Entity.UserEntity;

import java.util.List;

/**

  • 用户管理业务层接口

*/

public interface UserService extends IService {

/**

  • 不分页查询所有用户信息

*/

List getUsers();

/**

  • 根据性别查询所有用户

  • @param sex 性别

*/

List getUsersBySex(String sex);

}

UserServiceImpl

继承接口实现上方两方法。

由于是使用了该mybatis-plus的查询方式,顾语法有些不一样。这个后续给大家详细讲讲。

package com.example.demo.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;

import com.example.demo.Entity.UserEntity;

import com.example.demo.dao.UserMapper;

import com.example.demo.service.UserService;

import org.springframework.stereotype.Service;

import java.util.List;

/**

  • 用户管理业务层

*/

@Service

public class UserServiceImpl extends ServiceImpl<UserMapper, UserEntity> implements UserService {

/**

  • 不分页查询所有用户信息

*/

@Override

public List getUsers() {

//直接可使用IService 封装好的一些方法,这个自行点进去看。

return this.list();

}

/**

  • 根据性别查询所有用户

  • @param sex 性别

*/

@Override

public List getUsersBySex(String sex) {

//条件构造器

QueryWrapper wrapper = new QueryWrapper<>();

//eq 代表“ = ”;例如 eq(“sex”, “男”) —> sex = ‘男’;等同于拼接在sql语句后边的where条件。

wrapper.eq(“sex”,sex);

//将条件带入返回

List list = this.list(wrapper);

//返回数据

return list;

}

}

UserMapper

package com.example.demo.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;

import com.example.demo.Entity.UserEntity;

import org.springframework.stereotype.Component;

/**

  • 用户管理持久层

*/

@Component

public interface UserMapper extends BaseMapper {

}

以上 添加就大功告成了;

最后是controller类,调用刚才我们写的那两接口进行访问,看看结果如何

分发器代码如下:

package com.example.demo.controller;

import com.example.demo.Entity.UserEntity;

import com.example.demo.service.UserService;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestParam;

import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**

  • 用户管理分发器

*/

@RestController@RequestMapping(“/user”)

public class UserController {

@Autowired

private UserService userService;

/**

  • 不分页查询所有用户信息

*/

@GetMapping(“/get-users”)

public List getUserList() {

return userService.getUsers();

}

/**

  • 根据性别查询所有用户

  • @param sex 性别

*/

@GetMapping(“/get-users-by-sex”)

public List getUsersBySex(@RequestParam(name = “sex”) String sex) {

return userService.getUsersBySex(sex);

}

}

接下来,不用我说大家也知道了吧!接口访问,一切从简,那就直接打开浏览器访问咯

奥对了在访问之前,咱们再做一件事,添加一下控制台sql打印输出,方便我们查看到底执行了什么?对吧。做法只需在application-dev.yaml 中配置如下即可。

日志设置

logging:

level:

持久层日志级别

com.example.demo.dao: debug

ok~咱们先来访问第一个接口;浏览器直接访问。

http://localhost:8080/user/get-users

ps:如果中途报错,找不到basemapper

mybatis-plus保姆级入门教程,手把手教你轻松实现增删改查

那你请在启动类 DemoApplication 中添加如下这行,表示指定扫描 dao。

@MapperScan(“com.example.demo.dao”)

mybatis-plus保姆级入门教程,手把手教你轻松实现增删改查

完事之后,接着干正事,看看能否查询到五条数据?咱们拭目以待~

很好。成功查询出了五条数据

mybatis-plus保姆级入门教程,手把手教你轻松实现增删改查

然后我们再看下控制台,看看执行了什么sql语句?请看如下:
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

如果觉得本文对你有帮助的话,不妨给我点个赞,关注一下吧!

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!**

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

如果觉得本文对你有帮助的话,不妨给我点个赞,关注一下吧!

[外链图片转存中…(img-7dvZCiKH-1713476220419)]

[外链图片转存中…(img-l0vGiF2u-1713476220419)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值