CRUD如何简化开发

本篇文章,我们通过 mybatis plus 来对一张表进行 crud 操作,来看看是**如何简化我们开发的****。
1、创建测试表创建 user 表:
drop table if exists `user`;create table `user` ( `id` int(11) not null, `user_name` varchar(32) collate utf8mb4_bin default null, `user_age` int(11) default null, primary key (`id`)) engine=innodb default charset=utf8mb4 collate=utf8mb4_bin;向 user 表中插入两条数据:
insert into `user` values ('1', 'it可乐', '18');insert into `user` values ('2', 'ysocean', '22');打开表,发现有两条数据了:
2、创建 spring boot 工程通过 idea 创建 spring boot 工程,如果不能连接 https://start.spring.io/ 网址,可以将网址变成 https://start.aliyun.com/ ,如下所示:
3、导入依赖 com.baomidou mybatis-plus-boot-starter 3.3.2 mysql mysql-connector-java runtime首先mybatis-plus 我们导入最新版 3.3.2。另外,由于我数据采用的是 mysql,所以这里导入了 mysql 的连接依赖。
另外,为了简化javabean 类的书写,我这里额外导入一个 lombok 插件依赖。
org.projectlombok lombok true通过这个依赖的相关注解,我们可以不用书写繁琐的 get/set 方法。
4、编写数据库配置文件在 springboot 项目的 resource 目录下,新建 application.yml 文件,添加如下内容:
server: port: 8082spring: datasource: url: jdbc:mysql://localhost:3306/mybatisplus?useunicode=true&characterencoding=utf-8 username: root password: root # >= 6.x: com.mysql.cj.jdbc.driver # <= 5.x: com.mysql.jdbc.driver driver-class-name: com.mysql.cj.jdbc.driver注意:url里面填写的 mybatisplus 是我的数据库名称,注意修改,username和password分别填写自己的数据库连接名称和密码。
5、编写代码①、实体类user.java
@getter@setterpublic class user { private long id; private string username; private string userage;}②、创建usermapper 接口
import com.baomidou.mybatisplus.core.mapper.basemapper;import com.ys.mybatisplusstudy.entry.user;public interface usermapper extends basemapper {}③、启动类增加@mapperscan注解
@springbootapplication@mapperscan(com.ys.mybatisplusstudy.mapper)public class mybatisplusstudyapplication { public static void main(string[] args) { springapplication.run(mybatisplusstudyapplication.class, args); }}如果不想在启动类加 @mapperscan 注解,也可在每个 mapper 接口上增加 @mapper 注解。
所有配置上面都以完成,是不是很简单,接下来我们对这张表进行crud 测试。
6、crud 测试我们在编写 usermapper 接口时,其继承了一个 basemapper 接口:
public interface usermapper extends basemapper {}我们进入到 basemapper 内部,发现其结构如下:
这些方法便是我们常用的增删改查了,下面我们分别演示几个常用的。
①、insert:新增一条记录
@springboottestclass mybatisplusstudyapplicationtests { @autowired private usermapper usermapper; /** * 新增一条记录 */ @test public void testinsert(){ user user = new user(); user.setid(3l); user.setusername(test insert); user.setuserage(1); int insert = usermapper.insert(user); system.out.println(影响记录数:+insert); }}执行完毕后,我们查看数据库:
②、delete:删除记录
/** * 根据id删除一条记录 */ @test public void testdeletebyid(){ int num = usermapper.deletebyid(3l); system.out.println(删除的记录数为:+num); querywrapper wrapper = new querywrapper(); wrapper.eq(id,3l); usermapper.delete(wrapper); }/** * 构造相关条件删除记录 */ @test public void testdelete(){ querywrapper wrapper = new querywrapper(); wrapper.eq(user_name,test insert); int num = usermapper.delete(wrapper); system.out.println(删除的记录数为:+num); }③、update:修改记录
/** * 根据id修改 */ @test public void testudpatebyid(){ user user = new user(); user.setid(3l); user.setusername(test update); int num = usermapper.updatebyid(user); system.out.println(修改的记录数为:+num); }④、select:查询记录
/** * 查询user表所有记录 */ @test public void testselectall(){ list users = usermapper.selectlist(null); users.foreach(x- > system.out.println(x.getid()+-+x.getusername()+-+x.getuserage())); }/** * 查询指定记录 */ @test public void testselectwrapper(){ querywrapper wrapper = new querywrapper(); wrapper.eq(user_name,it可乐); list users = usermapper.selectlist(wrapper); users.foreach(x- > system.out.println(x.getid()+-+x.getusername()+-+x.getuserage())); }发现没有,做增删改查是如此的丝滑流畅,都不用写sql语句了。
当然,这都只是单表的简单玩法,后面我们会介绍高阶玩法。
7、打印sql语句这里补充一个小知识点,通过如下配置,我们可以查看执行的 sql 语句日志。
在 applicatio.yml 文件中,进行如下配置:
# 配置slq打印日志mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.stdoutimpl
当然,这种配置只是把 sql 日志打印到控制台便于我们调试,后面会介绍更加强大的 sql 分析工具。

一加设计师晒木质背壳版一加6 木材加以帆布蓝让产品融入生活
经纬恒润助力新一代领克03首发亮相
双轨雷达波自动测流系统设计与运用
网络安全市场它真正需要的是什么
骁龙765G处理器详解,与骁龙865相同架构功耗降低35%
CRUD如何简化开发
如何运用MATLAB采用数字信号处理的优势?
将AI用于公共安全和安保
探究有为信息王牌单品一体化智能视频监控终端K5-P
对耳朵伤害最小的耳机款式、头戴式,入耳式我更推荐骨传导耳机
高集成度单芯片锂电池保护解决方案
加密协议可能被破解,全球WIFI安全将遭到威胁
2nm芯片是哪个国家研制的 2nm芯片什么时候量产
近红外光触发柔性电子器件自适应三维形变
三极管的电流增益在正向与反向变化
自复式过欠压保护器的毁坏因素一般有哪些
谷歌Gemini被曝夸大营销?碾压GPT4纯靠“一张嘴”
【冶金能源节能减排,电媒能耗监测系统】
了解电路设计常见的八个误区
德赛西威荣获小鹏汽车“优秀供应商奖”