Java--SpringBoot-40-Mybatis-8-SQL语句构建器

简介: 如果发愁写SQL语句,在Mybatis中,提供了一种生成SQL语句的工具,以下为所在类包:

如果发愁写SQL语句,在Mybatis中,提供了一种生成SQL语句的工具,以下为所在类包:

image.png


抽象类AbstractSQL<T>太大了,可以下源码自己查看:

image.png

       可以看到很多熟悉的SQL语句的关键字,比如 JOIN ON ,DISTINCT等等。

直接上代码:

publicstaticvoidmain(String[] args) {
// 官网实例SQLsql1=newSQL() {{
SELECT("P.ID, P.USERNAME, P.PASSWORD, P.FULL_NAME");
SELECT("P.LAST_NAME, P.CREATED_ON, P.UPDATED_ON");
FROM("PERSON P");
FROM("ACCOUNT A");
INNER_JOIN("DEPARTMENT D on D.ID = P.DEPARTMENT_ID");
INNER_JOIN("COMPANY C on D.COMPANY_ID = C.ID");
WHERE("P.ID = A.ID");
WHERE("P.FIRST_NAME like ?");
OR();
WHERE("P.LAST_NAME like ?");
GROUP_BY("P.ID");
HAVING("P.LAST_NAME like ?");
OR();
HAVING("P.FIRST_NAME like ?");
ORDER_BY("P.ID");
ORDER_BY("P.FULL_NAME");
        }};
System.out.println(sql1);
// 删除语句SQLsql2=newSQL();
sql2.DELETE_FROM("user");
sql2.WHERE("id = 1");
System.out.println("删除语句:");
System.out.println(sql2);
// 插入语句SQLsql3=newSQL().
INSERT_INTO("USER")
                .VALUES("ID, USERNAME", "${id}, ${userName}")
                .VALUES("REALNAME", "${realName}");
System.out.println("插入语句:");
System.out.println(sql3);
// 查询语句Stringid="id";
StringuserName="userName";
StringrealName="realName";
SQLsql4=newSQL() {{
SELECT("U.ID, U.USERNAME, U.PASSWORD");
FROM("PERSON U");
if (id!=null) {
WHERE("U.ID = ${id}");
            }
if (userName!=null) {
WHERE("U.USERNAME like ${userName}");
            }
if (realName!=null) {
WHERE("U.REALNAME like ${realName}");
            }
ORDER_BY("U.LAST_NAME");
        }};
System.out.println("查询语句:");
System.out.println(sql4);
// 更新修改语句SQLsql5=newSQL();
sql5.UPDATE("USER");
sql5.SET("USERNAME = ${userName}");
sql5.WHERE("ID = ${id}");
System.out.println("更新语句:");
System.out.println(sql5);
    }

运行结果:

image.png


官网有每个版本新增的方法说明:(阅读原文可跳到官网)

image.png


总结:

       我还是喜欢自己写sql,感觉写这个语句的时间,足够我写一个啦!

而且,这个也只是对传入字符的拼装而已,如果传入参数写错了,也没有校验功能。




END

目录
相关文章
|
4天前
|
前端开发 Java 测试技术
Java一分钟之Spring MVC:构建Web应用
【5月更文挑战第15天】Spring MVC是Spring框架的Web应用模块,基于MVC模式实现业务、数据和UI解耦。常见问题包括:配置DispatcherServlet、Controller映射错误、视图解析未设置、Model数据传递遗漏、异常处理未配置、依赖注入缺失和忽视单元测试。解决这些问题可提升代码质量和应用性能。注意配置`web.xml`、`@RequestMapping`、`ViewResolver`、`Model`、`@ExceptionHandler`、`@Autowired`,并编写测试用例。
90 3
|
3天前
|
缓存 IDE Java
Java一分钟之-Gradle:构建自动化工具
【5月更文挑战第16天】本文介绍了Gradle,一个基于Groovy的灵活构建工具,强调其优于Maven的灵活性和性能。文中通过示例展示了基本的`build.gradle`文件结构,并讨论了常见问题:版本冲突、缓存问题和构建速度慢,提供了相应的解决策略。此外,还提醒开发者注意插件ID、语法错误和源代码目录等易错点。掌握这些知识能提升开发效率,使构建过程更顺畅。
22 2
|
3天前
|
安全 Java Android开发
构建高效Android应用:探究Kotlin与Java的性能差异
【5月更文挑战第16天】 在移动开发领域,性能一直是开发者关注的焦点。随着Kotlin语言的普及,其与Java在Android应用中的性能表现成为热门话题。本文将深入分析Kotlin和Java在Android平台上的性能差异,并通过实际测试数据来揭示二者在编译速度、应用启动时间以及运行效率方面的表现。我们的目标是为开发者提供一个参考依据,以便在选择合适的编程语言时做出更加明智的决策。
|
4天前
|
存储 Java Maven
Maven 构建 Java 项目
使用 Maven 的 `maven-archetype-quickstart` 插件在 `C:\MVN` 创建 Java 应用项目 `consumerBanking`,命令行参数包括 `-DgroupId`, `-DartifactId` 和 `-DarchetypeArtifactId`。项目包含 src/main/java 和 src/test/java 目录,分别存放 Java 代码和测试代码,以及 src/main/resources 用于存储资源文件。默认生成的 `App.java` 和 `AppTest.java` 分别为应用主类和测试类。
|
4天前
|
传感器 机器人 Java
使用Java构建机器人应用
使用Java构建机器人应用
11 0
|
4天前
|
安全 Java API
使用Java构建RESTfulWeb服务
使用Java构建RESTfulWeb服务
10 0
|
4天前
|
分布式计算 负载均衡 Java
构建高可用性Java应用:介绍分布式系统设计与开发
构建高可用性Java应用:介绍分布式系统设计与开发
13 0
|
4天前
|
缓存 NoSQL Java
构建高性能微服务架构:Java后端的实践之路
【5月更文挑战第5天】在当今快速迭代和高并发需求的软件开发领域,微服务架构因其灵活性、可扩展性而受到青睐。本文将深入探讨如何在Java后端环境中构建一个高性能的微服务系统,涵盖关键的设计原则、常用的框架选择以及性能优化技巧。我们将重点讨论如何通过合理的服务划分、高效的数据存储策略、智能的缓存机制以及有效的负载均衡技术来提升整体系统的响应速度和处理能力。
|
4天前
|
移动开发 Java Android开发
构建高效Android应用:探究Kotlin与Java的性能对比
【5月更文挑战第4天】在移动开发的世界中,性能一直是衡量应用质量的重要指标。随着Kotlin的兴起,许多Android开发者开始考虑是否应该从传统的Java迁移到Kotlin。本文通过深入分析两者在Android平台上的性能差异,帮助开发者理解Kotlin在实际项目中的表现,并提供选择编程语言时的参考依据。
24 5
|
4天前
|
Java Maven
Maven 构建 Java 项目
使用Maven的`maven-archetype-quickstart`插件在C:\MVN下创建Java应用,命令包括`groupId`, `artifactId`, 和 `archetypeArtifactId`参数。生成的项目包含src/main/java和src/test/java目录,分别用于存放源代码和测试代码,还有src/main/resources用于资源文件。默认提供App.java主类和AppTest.java测试类。按照预设结构组织文件,Maven将自动管理构建过程。