mybatis---->tx中weekend类

🙌首先weekend可不是mybatis中的类呦~~🙌
它是来自于mybatis的一个扩展库!

如果你要在springboot中使用,需要引入以下依赖~~
<dependency><groupId>tk.mybatis</groupId><artifactId>mapper-spring-boot-starter</artifactId>
</dependency>

这个库是由第三方提供的,独立于 MyBatis 官方的持久层框架。
它提供了一系列的便捷方法,使得在 MyBatis 中进行单表操作时,可以不编写或者极少编写SQL语句和Mapper XML文件。tk.mybatis.mapper.weekend 包中包含的 Weekend 类,正是这个库用来支持灵活的条件查询的工具之一。

在这个包tk.mybatis.mapper.weekend中它是基于Weekend 和 WeekendCriteria 类构建的。其中最核心的通常是Weekend和WeekendSqls。
下面我对个别方法进行解释:

weekend中:
weekendCriteria(): 这个方法用于创建一个WeekendCriteria对象,该对象用于构建具体的查询条件。比如,你可以通过这个对象添加各种where条件。
orderBy(String property): 用于添加排序条件。你需要传入一个实体类的属性名,基于这个属性进行排序。WeekendSqls中:
WeekendSqls是一个工具类,用于以更流畅的API方式快速构建查询条件。
WeekendSqls<T> custom(): 静态方法,用于开始构建查询条件。
andEqualTo(Object property, Object value): 添加一个等于的条件,其中property是实体类的属性名,value是对应的值。
andGreaterThan(Object property, Object value): 添加一个大于的条件。
andLessThan(Object property, Object value): 添加一个小于的条件。
等等,还有很多类似的方法用于构建不同类型的查询条件。

作用

Weekend 类的作用是提供了一个流式编程的接口,使得动态 SQL 的构建更加易于阅读和编写。它主要用于构建复杂的查询条件,而不需要编写具体的 SQL 语句。通过链式调用,可以组合各种查询条件,如排序、分组、去重等。

如何使用
Weekend 类通常与 WeekendSqls 类一起使用。这里是一个使用 Weekend 类和 WeekendSqls 创建查询条件的例子:

Weekend<User> weekend = Weekend.of(User.class);
weekend.weekendCriteria().andEqualTo(User::getUserName, "Alice").andBetween(User::getAge, 18, 30).andIn(User::getOccupation, Arrays.asList("Developer", "Designer"));

在上述代码中:
Weekend.of(User.class) 创建了一个针对 User 类的 Weekend 实例。
weekendCriteria() 方法开始构建查询条件。
andEqualTo、andBetween、andIn 方法分别添加了相等、区间和 IN 条件。

优势:

使用 Weekend 类的优势在于:
代码的清晰性:它提供了一种更声明性的方法来构建查询条件,而不是拼接字符串或编写 XML 映射文件
类型安全:由于它利用了 Java 8 的 Lambda 表达式和类型推断,因此在编译时就能捕获某些类型错误。
减少样板代码:它减少了为每个查询编写和维护大量 SQL 语句的需要。

最后需要注意的是:
要使用 Weekend 类,通常需要在项目中添加 MyBatis 通用 Mapper 插件的依赖,并且需要了解如何与 MyBatis 配置和映射器接口一起使用。此外,Weekend 类是一个特定于该插件的实用工具,不是 MyBatis 核心库的一部分,因此在不使用通用 Mapper 插件的项目中不会有这个类。

在tk.mybatis.mapper.weekend包中,WeekendCriteria和WeekendSqls 有什么关系?

功能定位:
WeekendCriteria 可能是用于构建查询条件的类,允许开发者以更直观的方式指定过滤条件,例如通过链式调用设置属性等于、不等于、大于等复杂条件。
WeekendSqls 可能是根据 WeekendCriteria 所定义的条件动态生成相应的 SQL 语句的类或工具。

工作机制:
开发者首先使用 WeekendCriteria 来定义查询条件,包括哪些字段需要被匹配以及匹配的具体规则。
然后,WeekendSqls 可能会接受这些条件作为输入,并转化为有效的 SQL 语句,这些语句可以被 MyBatis 执行以查询数据库。

使用流程:
在代码中,可能首先创建一个 WeekendCriteria 对象,并利用提供的方法来构建查询的条件。
接着,这个 WeekendCriteria 对象会被传递给 WeekendSqls 或类似的机制,用于生成最终的 SQL 语句。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/705183.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

滥用生成式人工智能的安全威胁的应对

文章目录 前言一、生成式人工智能滋生了恶意大模型的新威胁(一)对维护国家安全提出新挑战(二)对行业应用创新造成新冲击(三)对生产生活方式带来新威胁二、生成式人工智能安全治理难点(一)包容审慎存在失衡,政策尺度有待细化(二)协同治理能力不足,联动合力有待提升(…

蓝桥杯刷题1

目录 1. 平方和 2. 门牌制作 3. 卡片 4. 分数 5. 星期一 6. 顺子日期 1. 平方和 题目描述&#xff1a;小明对数位中含有2、0、1、9 的数字很感兴趣&#xff0c;在1 到40 中这样的数包 括1、2、9、10 至32、39 和40&#xff0c;共28 个&#xff0c;他们的和是574&#x…

Netty权威指南——基础篇2(NIO编程)

1 概述 与Socket类和ServerSocket&#xff0c;NIO也提供了SocketChannel和ServerSocketChannel两种不同的套接字通道实现。这两种新增的通道都支持阻塞和非阻塞两种模式。阻塞模式使用简单&#xff0c;但性能和可靠性都不好&#xff0c;非阻塞模式则正好相反。一般来说&#xf…

python Matplotlib Tkinter-->导出pdf报表

环境 python:python-3.12.0-amd64 包: matplotlib 3.8.2 reportlab 4.0.9 import matplotlib.pyplot as plt from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2Tk import tkinter as tk import tkinter.messagebox as messagebox impor…

你知道哪里有Alzet购买吗?

Alzet Osmotic Pumps 是 ALZA 公司于二十世纪七十年代发明的一种用于体内药物缓释的工具。ALZA公司是一家著名的药物研发公司&#xff0c;由其研发的 Alzet 植入式胶囊渗透压泵一开始是用于公司内部和相关科研机构做药物测试用的&#xff0c;但是不久之后&#xff0c;由于渗透压…

46.仿简道云公式函数实战-文本函数-CHAR

1. CHAR函数 函数可将计算机其他类型的数字代码转换为字符。 2. 函数用法 CHAR(number) CHAR 函数可将计算机其他类型的数字代码转换为字符。 Number&#xff1a;用于指定字符的数字。 3. 函数示例 CHAR(10)&#xff0c;即返回值为换行字符"\n"。 目前仿简道…

电脑背景图片怎么设置?这个方法让你一目了然

电脑背景图片的设置是个性化电脑桌面的重要步骤之一。一张美观的背景图片不仅可以为电脑带来视觉愉悦&#xff0c;还能反映个人品味和风格。在本文中&#xff0c;我们将介绍电脑背景图片的设置方法&#xff0c;共包括三种方式&#xff0c;通过分步骤详细说明&#xff0c;帮助用…

【重温设计模式】适配器模式及其Java示例

【重温设计模式】适配器模式及其Java示例 适配器模式的介绍 在软件开发的世界里&#xff0c;设计模式如同是我们的罗盘&#xff0c;指引着我们在复杂的代码海洋中航行。而其中的适配器模式&#xff0c;就如同是我们手中的万能钥匙&#xff0c;让我们能够灵活应对各种各样的设…

解决Maven爆红以及解决 Idea 卡在 Resolving问题

关于 Idea 卡在 Resolving&#xff08;前提是Maven的setting.xml中配置好了阿里云和仓库&#xff09; 参考文章https://blog.csdn.net/jiangyu1013/article/details/95042611 解决Maven爆红参考文章https://devpress.csdn.net/beijing/656d993b76f0791b6eca7bb0.html?dp_toke…

IP 电话

1 IP 电话概述 IP 电话是在互联网上传送多媒体信息。 多个英文同义词&#xff1a; VoIP (Voice over IP) Internet Telephony VON (Voice On the Net) 1.1 狭义的和广义的 IP 电话 狭义的 IP 电话&#xff1a;指在 IP 网络上打电话。 广义的 IP 电话&#xff1a;不仅仅是…

路由器端口映射如何配置?

在网络通信中&#xff0c;路由器是一个重要的设备&#xff0c;它负责将数据包从一个网络传输到另一个网络。路由器的端口映射配置是一种重要的设置&#xff0c;可以使外部网络中的计算机通过访问路由器上的特定端口与内部网络中的计算机进行通信。本文将介绍什么是路由器端口映…

24考研成绩查询时间已公布!附最全查分攻略!

2月26日早上9点起&#xff01; 2024考研初试成绩即将公布&#xff01; 考研初试成绩即将公布&#xff0c;同学们都在紧张地期待着自己的成绩。不同院校的成绩查询入口开通时间有所不同&#xff0c;具体时间请大家查看各自官网的通知。 成绩在哪查&#xff1f;怎么查&#xff1…

ASP.NET MVC中使用Autofac依赖注入

ASP.NET MVC中使用Autofac依赖注入 官网文档&#xff1a;MVC — Autofac 7.0.0 documentation 2024年02月26日在.net 4.8 framework 建立的MVC项目中测试通过 引入NUGET包&#xff1a;Autofac和Autofac.Mvc5 Global中加入以下代码&#xff1a; //autofac注入ContainerBuild…

【力扣 - 爬楼梯】

题目描述 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 方法一&#xff1a;动态规划 思路和算法 我们用 f(x) 表示爬到第 x 级台阶的方案数&#xff0c;考虑最后一步可能跨了一级台阶&#…

LeetCode_Java_转变日期格式、种花问题(题目+思路+代码)

目录 1507. 转变日期格式 605.种花问题 1507. 转变日期格式 给你一个字符串 date &#xff0c;它的格式为 Day Month Year &#xff0c;其中&#xff1a; Day 是集合 {"1st", "2nd", "3rd", "4th", ..., "30th", "3…

Qt篇——QTableWidget保存表格数据到Excel文件中

代码如下&#xff1a; &#xff08;pro文件中添加QT axcontainer&#xff09; #include <QAxObject>void MainWindow::saveTableToExcel() {QDateTime current_date_time QDateTime::currentDateTime();QString excelName "data_" current_date_time.toSt…

Mysql 高可用解决方案

1.环境说明 操作系统&#xff1a;centos7.7 主服务器&#xff1a;node2(192.168.1.102) 从服务器&#xff1a;node3(192.168.1.103) keepalived中虚拟ip(VIP):192.168.1.100 2.准备事项 主库和从库数据库的版本一致把主库的数据同步给从库一份 3.主库配置 3.1 编辑MySQL配…

ETL是什么

一、ETL概念 ETL&#xff0c;是英文Extract-Transform-Load的缩写&#xff0c;用来描述将数据从来源端经过抽取&#xff08;extract&#xff09;、转换&#xff08;transform&#xff09;、加载&#xff08;load&#xff09;至目的端的过程。ETL一词较常用在数据仓库&#xff…

2024.2.26 训练记录(1)

每天的题目总结在一起&#xff0c;睡觉之前一定要再看一遍复习一下思路尽快恢复状态&#xff0c;计划是先把前几场没补的牛客补一下&#xff0c;然后开始刷洛谷 文章目录 牛客 寒假集训4F 来点每日一题牛客 寒假集训4H 数三角形&#xff08;hard&#xff09;牛客 寒假集训4K 方…

Gemma谷歌(google)开源大模型微调实战(fintune gemma-2b)

Gemma-SFT Gemma-SFT(谷歌, Google), gemma-2b/gemma-7b微调(transformers)/LORA(peft)/推理 项目地址 https://github.com/yongzhuo/gemma-sft全部weights要用fp32/tf32, 使用fp16微调十几或几十的步数后大概率lossnan;(即便layer-norm是fp32也不行, LLaMA就没有这个问题, …