SSM(5)(动态sql <if>、<where>、返回主键值)

ops/2024/10/17 23:16:38/

返回主键值:

方法一:

useGeneratedKeys 为ture 声明 返回主键

keyProperty 表示要返回的值 封装到对象的属性中

但是这一种方法不支持Orcal数据库

    <insert id="save2" parameterType="com.findyou.entity.User" useGeneratedKeys="true" keyProperty="id">insert into user(username) values(#{username});</insert>

方法二:

selectKey标签支持所有的数据库

order  表示先后顺序
keyProperty  给到对象的哪个属性
keyCoLum 数据库里面哪个字段是主键
resuLtType  返回值的类型

    <insert id="save3" parameterType="com.findyou.entity.User"><selectKey order="AFTER" keyProperty="id" resultType="int" keyColumn="id">select LAST_INSERT_ID();</selectKey>insert into user(username) values(#{username});</insert>

动态sql

 <if>标签

if标签里面的属性 test= "条件",当这个条件满足的时候才会进去。

<where>标签

where标签解决and等拼接的问题。

但需要注意的是:where标签只会 智能的去除(忽略)首个满足条件语句的前缀。所以建议在使用where标签时,每个语句最好写上 and 前缀或者 or 前缀。

注意的是:

Integer 类型空的情况下是 null, int类型的空是0。因此在判断的时候写的是 != null and != ''

    <!--动态sql--><select id="findByIdAndUsernameIf" resultType="user" parameterType="user">select * from user<where><if test="id != null and id != ''">and id = #{id}</if><if test="username != null">and username = #{username}</if></where></select>

http://www.ppmy.cn/ops/126320.html

相关文章

python从0快速上手(二)IDE选择

在这个代码横飞的世界里&#xff0c;选择一个合适的Python IDE就好比是选择一把顺手的武器。今天&#xff0c;就让我来带你一探究竟&#xff0c;看看市面上有哪些让人眼花缭乱的Python IDE&#xff0c;并一较高下。 1. PyCharm PyCharm&#xff0c;由大名鼎鼎的JetBrains出品…

【C++11】可变模板参数详解

个人主页&#xff1a;chian-ocean 文章专栏 C 可变模板参数详解 1. 引言 C模板是现代C编程中一个非常强大且灵活的工具。在C11标准中&#xff0c;引入了可变模板参数&#xff08;variadic templates&#xff09;&#xff0c;它为模板编程带来了革命性改变。它的出现允许我们…

苍穹外卖学习笔记(二十)

文章目录 用户端历史订单模块&#xff1a;查询历史订单OrderControllerOrderServiceOrderServiceImpl 查询订单详情OrderControllerOrderServiceOrderServiceImpl 用户端历史订单模块&#xff1a; 查询历史订单 OrderController /*** 历史订单*/GetMapping("/historyOrd…

12.1-基础柱状图构建

Python基础综合案例——数据可视化 动态柱状图 通过Bar构建基础柱状图 反转x和y轴 调用 bar.reversal_axis() 我们现在所看到的数值是从下到上的&#xff0c;当我们反转之后数据是从左向右的&#xff0c;我们现在把数据放到柱的右边。即数值标签在右侧 添加y轴数据的时候&am…

MySQL高可用性(MySQL High Availability)解析

MHA (Master High Availability Manager) 是一种用于 MySQL 主从复制架构的高可用性解决方案&#xff0c;可以实现自动故障转移&#xff0c;从而减少停机时间并提高系统的可用性。 MHA 的工作原理 MHA 通过监控主库的状态并在检测到主库故障时自动进行故障转移来实现高可用性…

显卡的HDMI和DP接口的区别,如何给显卡选择最佳效果的显示器

1、HDMI和DisplayPort&#xff08;DP&#xff09;的区别 在显卡接口的选择上&#xff0c;HDMI和DisplayPort&#xff08;DP&#xff09;是两种常见的连接方式。它们在兼容性、性能以及分辨率等方面存在区别。具体分析如下&#xff1a; 兼容性 HDMI&#xff1a;广泛兼容多种设备…

本地合并develop分支到分支a

步骤 切换到a分支&#xff1a; 首先&#xff0c;你需要切换到目标分支a。 git checkout a合并develop分支到a分支&#xff1a; 使用git merge命令将develop分支合并到当前分支&#xff08;即a分支&#xff09;。 git merge develop解决冲突&#xff08;如果有&#xff09;&…

React(四) 事件总线,setState的原理,PureComponent优化React性能,ref获取类组件与函数组件

文章目录 一、全局事件总线二、setState的原理1. 为什么要使用setState修改数据2. setState的三种用法(1) 基本使用(2) 传入回调函数(3) setState是一个异步调用 3. setState为什么要设置成异步 二、PureComponent优化性能1. React的diff算法以及Key的优化(扩展)(1) diff算法(2…