Springboot+mybatis 最简单的增删改查写法

本贴最后更新于 1349 天前,其中的信息可能已经水流花落

增删改查估计是每个程序员都痛恨的事情,其实就是复制粘贴,于是乎,小刀就折腾了一个工具类,可以帮大家最大程度上(至少我觉得很简化)去少些增删改查代码

引入依赖

除了常用的 springboot 相关依赖,要加上小刀打的工具包,整体依赖如下

	implementation 'org.springframework.boot:spring-boot-starter-web'
	implementation 'org.springframework.boot:spring-boot-starter-data-redis'
	implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.3'

	// 小刀打的工具包依赖(已发布到中央仓库)
	compile 'red.lixiang.tools:sunshine-starter:1.0.1'
	// 这里方便测试,引了h2 , 实际中可以换成mysql
	runtimeOnly 'com.h2database:h2'

准备测试表

这里为了代码运行方便,我们直接引入了 h2 数据库.表结构及测试数据如下:

drop table users if exists;

create table users (
                       id int,
                       name varchar(20)
);
insert into users (id, name) values((select count(*) + 1 from users), 'XiaoDao');
insert into users (id, name) values((select count(*) + 1 from users), '公众号:java技术大本营');
insert into users (id, name) values((select count(*) + 1 from users), '微信:best396975802');

编写实体类

这里面的实体类有两个, 一个是和数据库对应的实体类, 一个是查询用的 QC,QC 中封装了一些和查询相关的通用字段.
数据库对应字段:
Users:

public class Users {
    // 这个字段标识了是和数据库对应的字段
    @SqlField
    private Long id;
    @SqlField
    private String name;

  // 这里省略了get/set方法
}

UsersQC:

// 注意这里要继承一下BaseQC
public class UsersQC extends BaseQC {

    private Long id;
     // 这里的QC注解,按需使用,如这里, 标识name是一个可以模糊查询的字段
    @QC(likeQuery = true)
    private String name;

}

编写 mybatis 的 mapper 文件

// 需要继承BaseMapper,里面封装了基本的增删改查的写法
@Mapper
@Repository
public interface UsersMapper extends BaseMapper<Users> {

// 需要重写这个方法,去完成一些缓存的初始化
    @Override
    default Class<?> getMapperClass() {
        MybatisToolCache.cacheDomain("users",Users.class,UsersQC.class);

        return UsersMapper.class;
    }
}

编写 spring 的配置文件

这里面没有什么单独的配置,都是 h2 数据库的配置,在实际使用中,可以替换成 mysql 的数据库

#配置数据库连接地址
spring.datasource.platform=h2
#配置数据库驱动
spring.datasource.driver-class-name=org.h2.Driver
#配置数据库用户名
spring.datasource.username=sa
spring.datasource.schema=classpath:test_scheme.sql
spring.datasource.data=classpath:test_data.sql

启动项目

到目前为止,只需要我们写这些代码, Controller 小刀直接封装在框架中了,启动项目之后,可以访问
http://127.0.0.1:8080/simple/users/query 看到对应的数据库数据.
同样封装的请求还有获取单个的
http://127.0.0.1:8080/simple/users/get?id=1
新增/保存的
http://127.0.0.1:8080/simple/user/save (post 请求)
删除的
http://127.0.0.1:8080/simple/remove?id=1

源码地址

上述文章的代码地址:
https://github.com/xiaodaojava/sunshine-sample
工具类的源码地址:
https://github.com/xiaodaojava/sunshine

总结

在使用过程中,有什么疑问,欢迎随时私信小刀一起讨论交流~~

  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    940 引用 • 1458 回帖 • 156 关注
  • MyBatis

    MyBatis 本是 Apache 软件基金会 的一个开源项目 iBatis,2010 年这个项目由 Apache 软件基金会迁移到了 google code,并且改名为 MyBatis ,2013 年 11 月再次迁移到了 GitHub。

    170 引用 • 414 回帖 • 431 关注
  • 工具

    子曰:“工欲善其事,必先利其器。”

    273 引用 • 679 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...