Java神鬼莫测之MyBatis注解开发之动态SQL语句(六)

简介: Java神鬼莫测之MyBatis注解开发之动态SQL语句(六)

1.Mybatis注解开发之动态SQL语句


注意:Mybatis的动态sql语句开发, 可以分为三种写法:


1.脚本动态sql语句


2.方法中定义sql


3.结构化sql


2.案例环境


2.1.实体类 User(提供了Get、Set、toString方法)


20210720112538190.png


2.2.接口 IUserDao


20210720112643616.png


2.3.需求


使用动态sql, 执行IUserDao接口内的findUserByCondition方法


如果username属性有值,则查询条件中加上username=值


如果sex属性有值,则查询条件也商家 sex=值


3.动态SQL实现


3.1.脚本动态SQL语句


20210720112741453.png


把xml中的动态sql语句, 直接拷贝到注解中, 并使用script标签包括起来即可


3.2.方法中定义sql语句


3.2.1.需要定义一个专门用于生成动态sql语句的类. 并在类中定义一个专门给findUserByCondition()方法生成sql语句的方法.


20210720112821126.png

3.2.2.可以在方法中利用SELECT( ), FROM( ), WHERE( )等动态生成sql语句

20210720112848248.png

3.2.3.把该类的该方法,配置到接口的findUserByCondition()方法上,表示该方法所使用的查询的sql语句,由UserDynaSqlProvider类的findUserByConditionSql方法提供


20210720112907207.png

3.3.结构化sql语句


注意: 该方式和方式2一模一样, 只是在组装sql语句时的语法有少许区别.


3.3.1需要定义一个专门用于生成动态sql语句的类. 并在类中定义一个专门给findUserByCondition()方法生成sql语句的方法.


20210720113026978.png

3.3.2.可以在方法中利用SELECT( ), FROM( ), WHERE( )等动态生成sql语句


20210720113220926.png

3.3.3.把该类的该方法,配置到接口的findUserByCondition()方法上,表示该方法所使用的查询的sql语句,由UserDynaSqlProvider类的findUserByConditionSql方法提供

20210720113303778.png

测试


如果测试代码如下


20210720113342547.png


则程序运行产生的sql语句是:

select * from user where (username = ?)


运行结果是:


20210720113428617.png


如果测试代码如下:


20210720113438981.png


则程序运行产生的sql语句是:

select * from user where (username = ? and sex = ?)

运行结果是:


20210720113515245.png


目录
相关文章
|
2天前
|
安全 Java 数据库连接
Java使用MyBatis-Plus的OR
通过MyBatis-Plus的条件构造器,Java开发者可以方便地进行复杂的查询条件组合,包括AND和OR条件的灵活使用。熟练掌握这些技巧,可以显著提升开发效率和代码可读性。
36 20
|
1天前
|
SQL Java 数据库连接
【潜意识Java】MyBatis中的动态SQL灵活、高效的数据库查询以及深度总结
本文详细介绍了MyBatis中的动态SQL功能,涵盖其背景、应用场景及实现方式。
27 6
|
1天前
|
Java 应用服务中间件 API
【潜意识Java】javaee中的SpringBoot在Java 开发中的应用与详细分析
本文介绍了 Spring Boot 的核心概念和使用场景,并通过一个实战项目演示了如何构建一个简单的 RESTful API。
19 5
|
1天前
|
前端开发 Java 数据库连接
【潜意识Java】深度解读JavaWeb开发在Java学习中的重要性
深度解读JavaWeb开发在Java学习中的重要性
18 4
|
1天前
|
SQL Java API
|
1天前
|
前端开发 Java 数据库连接
Java后端开发-使用springboot进行Mybatis连接数据库步骤
本文介绍了使用Java和IDEA进行数据库操作的详细步骤,涵盖从数据库准备到测试类编写及运行的全过程。主要内容包括: 1. **数据库准备**:创建数据库和表。 2. **查询数据库**:验证数据库是否可用。 3. **IDEA代码配置**:构建实体类并配置数据库连接。 4. **测试类编写**:编写并运行测试类以确保一切正常。
10 2
|
1天前
|
SQL Java 数据库连接
【潜意识Java】深入理解MyBatis的Mapper层,以及让数据访问更高效的详细分析
深入理解MyBatis的Mapper层,以及让数据访问更高效的详细分析
|
1天前
|
SQL Java 数据库连接
【潜意识Java】深入理解MyBatis,从基础到高级的深度细节应用
本文详细介绍了MyBatis,一个轻量级的Java持久化框架。内容涵盖MyBatis的基本概念、配置与环境搭建、基础操作(如创建实体类、Mapper接口及映射文件)以及CRUD操作的实现。此外,还深入探讨了高级特性,包括动态SQL和缓存机制。通过代码示例,帮助开发者更好地掌握MyBatis的使用技巧,提升数据库操作效率。总结部分强调了MyBatis的优势及其在实际开发中的应用价值。
10 1
|
13天前
|
监控 JavaScript 数据可视化
建筑施工一体化信息管理平台源码,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
智慧工地云平台是专为建筑施工领域打造的一体化信息管理平台,利用大数据、云计算、物联网等技术,实现施工区域各系统数据汇总与可视化管理。平台涵盖人员、设备、物料、环境等关键因素的实时监控与数据分析,提供远程指挥、决策支持等功能,提升工作效率,促进产业信息化发展。系统由PC端、APP移动端及项目、监管、数据屏三大平台组成,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
|
11天前
|
SQL Java 数据库连接
Java MyBatis 面试题
Java MyBatis相关基础面试题