SpringBoot项目中MybatisPlus的使用(二)

本文基于Spring Boot项目,介绍MyBatis-Plus的使用。包括在springboot 2.1.0.RELEASE版本下,mysql和oracle数据库自动生成代码时的配置修改;还阐述了Wrapper(v3.0.1以上)的使用,如全表扫描、WHERE条件、AND和OR逻辑、构造复杂SQL及lambda表达式写法等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文主要内容:

  • 自动生成代码(新)
  • Wrapper的使用

本文在SpringBoot项目中MybatisPlus的使用一文基础上修改,升级为springboot的2.1.0.RELEASE版本。

一、自动生成代码
1、mysql数据库

SpringBoot项目中MybatisPlus的使用中已经有了详细的说明,但是在springboot的2.1.0.RELEASE版本下会报错,需要修改以下内容:

  • pom文件中mysql依赖:
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
		</dependency>
  • 修改CodeGenerator中数据源配置(主要是驱动名称变化):
        // 数据源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl("jdbc:mysql://localhost:3306/frog?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=GMT");
        dsc.setDriverName("com.mysql.cj.jdbc.Driver");
        dsc.setUsername("root");
        dsc.setPassword("123456");
2、orcale数据库

orcale的驱动一直下载不下载,于是从其他渠道复制了一个jar包,需要安装到本地maven仓库。

  • 复制jar包到本机,为了方便我直接放在maven\bin目录下:
    在这里插入图片描述
  • 在bin目录下打开cmd,执行安装命令:
mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc7 -Dversion=12.1.0.1 -Dpackaging=jar -Dfile=ojdbc7-12.1.0.1.jar
  • 打开maven本地仓库查看已经完成:
    在这里插入图片描述
  • 在pom文件中引入:
		<dependency>
			<groupId>com.oracle</groupId>
			<artifactId>ojdbc7</artifactId>
			<version>12.1.0.1</version>
		</dependency>
  • 修改CodeGenerator中数据源配置:
	    DataSourceConfig dsc = new DataSourceConfig();
		dsc.setUrl("jdbc:oracle:thin:@localhost:1521/frog");
        dsc.setDriverName("oracle.jdbc.OracleDriver");
        dsc.setUsername("frog");
        dsc.setPassword("frog123456");
二、Wrapper的使用(v3.0.1以上)

熟练的使用Wrapper能够减少xml中简单sql语句的重复编写,很大程度上节约了开发时间。例如:

1、全表扫描(参数为null):
    @Autowired
    private FrogMapper frogMapper;

    public void test() {
        Integer count = frogMapper.selectCount(null);
    }

SELECT COUNT(1) FROM frog

2、WHERE条件:
	QueryWrapper<Frog> wrapper = new QueryWrapper<>();
    wrapper.eq("id", 1);
    wrapper.ge("size", 5.1);
    Integer count = frogMapper.selectCount(wrapper);

Preparing: SELECT COUNT(1) FROM frog WHERE id = ? AND size >= ?
Parameters: 1(Integer), 5.1(Double)

下面罗列了常用的where条件(源码中都有注释,可以下载查看):

方法含义sql
eq等于=
ne不等于<>
gt大于>
lt小于<
ge大于等于>=
le小于等于<=
betweenBETWEEN 值1 AND 值2BETWEEN … AND …
likeLIKE ‘%值%’LIKE
likeLeftLIKE ‘%值’LIKE ‘%…’
isNull字段 IS NULLIS NULL
in字段 IN (value.get(0), value.get(1), …)IN (a,b,…)
orderBy排序:ORDER BY 字段, …order by
groupBy分组:GROUP BY 字段, …group by
havingHAVING ( sql语句 )having
3、AND 和 OR

按以上方式组成where条件语句默认都是and逻辑关系,如果是以下条件关系就需要稍作改动。

  • SQL 1:

Preparing: SELECT COUNT(1) FROM frog WHERE id = ? OR size >= ? AND name LIKE ?
Parameters: 1(Integer), 5.1(Double), a%(String)

		QueryWrapper<Frog> wrapper = new QueryWrapper<>();
        wrapper.eq("id", 1);
        wrapper.or();
        wrapper.ge("size", 5.1);
        wrapper.likeRight("name", "a");
        Integer count = frogMapper.selectCount(wrapper);
  • SQL 2:

Preparing: SELECT COUNT(1) FROM frog WHERE id = ? OR ( size >= ? AND name LIKE ? ) AND name LIKE ?
Parameters: 1(Integer), 5.1(Double), b%(String), a%(String)

		QueryWrapper<Frog> wrapper = new QueryWrapper<>();
        wrapper.eq("id", 1);
        wrapper.or(t -> t.ge("size", 5.1).likeRight("name","b"));
        wrapper.likeRight("name", "a");
        Integer count = frogMapper.selectCount(wrapper);
4、使用apply构造复杂SQL

复杂sql可以使用apply方法拼接,但是不推荐这么写,最好还是写在xml更容易阅读,另外还是sql注入的风险。

		QueryWrapper<Frog> wrapper = new QueryWrapper<>();
        wrapper.in("color", "red","blue","yellow");
        wrapper.apply("size = (select max(size) from frog group by color)");
        Integer count = frogMapper.selectCount(wrapper);

Preparing: SELECT COUNT(1) FROM frog WHERE color IN (?,?,?) AND size = (select max(size) from frog group by color)
Parameters: red(String), blue(String), yellow(String)

5、lambda表达式写法
		QueryWrapper<Frog> wrapper = new QueryWrapper<>();
        wrapper.lambda().eq(Frog::getColor, "green")
                .ge(Frog::getSize, 5.2);
        Integer count = frogMapper.selectCount(wrapper);

SELECT COUNT(1) FROM frog WHERE color = ? AND size >= ?
Parameters: green(String), 5.2(Double)

三、总结

本篇主要对mybatisplus代码生成功能中mysql和orcale数据源配置的完善,以及使用wrapper构建简单sql语句常用方法进行总结,因为开发中经常使用,即使简单也值得记录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值