我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mybatis xml中定义变量

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mybatis xml中定义变量

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。

mybatis定义全局变量只需要配置一下即可,那如何在mybatis xml文件中定义局部变量呢?这就需要使用标签了。

bind标签允许你在 OGNL 表达式以外创建一个变量,并将其绑定到当前的上下文。通俗来讲它就是声明了一个局部变量,它的优先级是高于其他语句的。

格式:

<bind name="name" value="value"/>
  • name:定义的变量名称
  • value:value是一个具体的值,它可以是入参,也可以是一个表达式,比如:判断条件

举例

UserInfo实体类

public class UserInfo {    private Long id;    private String gender;    private String name;    private Date createDate;}

不使用bind标签的SQL语句

<select id="bindTest" resultMap="BaseResultMap">    select    <include refid="Base_Column_List" />    from users    <where>        <choose>            <when test="minId != null and minId > 0 and maxId != null and maxId > 0">                and id between #{minId} and #{maxId}            when>            <otherwise>                <if test="minId != null and minId > 0">                    and id >= #{minId}                if>            otherwise>        choose>        <if test="username != null and username.trim() != ''">            and name like concat('%' , #{username} , '%')        if>    where>select>

测试类

@Testpublic void testBind(){    SqlSession sqlSession = sqlSessionFactory.openSession();    UserInfoMapper userInfoMapper = sqlSession.getMapper(UserInfoMapper.class);    List<UserInfo> userInfos = userInfoMapper.bindTest(1L , 10L, "0");    System.out.println(userInfos);}

运行测试类,打印的SQL语句:

sql=select Id, gender , name , create_date from users WHERE id between 1 and 10 and name like concat('%' , '0' , '%')

修改成使用bind标签的SQL语句:

<select id="bindTest" resultMap="BaseResultMap">   <bind name="minIdFlag" value="minId != null and minId > 0"/>    <bind name="maxIdFlag" value="maxId != null and maxId > 0"/>    <bind name="usernameLike" value="'%' + username + '%'"/>        select    <include refid="Base_Column_List" />    from users    <where>        <choose>            <when test="minIdFlag and maxIdFlag">                and id between #{minId} and #{maxId}            when>            <otherwise>                <if test="minIdFlag">                    and id >= #{minId}                if>            otherwise>        choose>        <if test="username != null and username.trim() != ''">            and name like #{usernameLike}        if>    where>select>

运行测试类,打印SQL如下:

sql=select Id, gender , name , create_date from users WHERE id between 1 and 10 and name like '%0%'

对比一下可以发现使用标签前后的sql语句都是一样的,也说明标签替换成功。

注意事项

  • bind标签的value不能为null
  • bind标签name最好不要使用点·进行赋值操作,如果使用的话直接取值是没问题的, 但是如果在等标签中使用时会报no getter xx异常。

本篇简单介绍了一下标签的使用,希望对你有用。

来源地址:https://blog.csdn.net/qq_39654841/article/details/128292095

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mybatis xml中定义变量

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Oracle中如何定义常量变量

在Oracle中,可以使用以下语法来定义常量变量:DECLAREconstant_name CONSTANT data_type := value;BEGIN-- code hereEND;在上面的语法中,constant_name
Oracle中如何定义常量变量
2024-08-24

python变量的定义

python变量的定义    功能:存储数据、被调用、标识数据(变量数据存储在内存里,数据是临时的)    name = "abc"        #name:变量名    abc:变量name的值    print (name)    #
2023-01-31

怎么在python中定义变量

这期内容当中小编将会给大家带来有关怎么在python中定义变量,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚本语言
2023-06-14

python中的变量如何定义

在Python中,变量可以通过赋值来定义。你可以使用等号(=)来为变量赋值。变量的命名遵循一些规则:变量名只能包含字母、数字和下划线。变量名不能以数字开头。变量名区分大小写。例如,name和Name是不同的变量名。变量名不能是Pyth
python中的变量如何定义
2024-02-29

如何在vbscript中定义变量

如何在vbscript中定义变量?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、申明变量① 显式声明:Dim、Public、Private语句进行声明② 隐式声明:不声明
2023-06-08

怎么在java中定义变量

这篇文章给大家介绍怎么在java中定义变量,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。定义/声明变量在 java 中用户可以通过指定数据类型和标识符来声明变量,其基本语法如下所示:DataType identifie
2023-06-14

c++中字符变量的定义

在 c++ 中,字符变量使用 char 关键字定义,只能存储单个字符,使用单引号赋值,可使用转义序列表示特殊字符。C++ 中字符变量的定义字符变量是用来存储单个字符的变量类型。在 C++ 中,可以使用 char 关键字来定义一个字符变量。
c++中字符变量的定义
2024-05-08

php中定义变量的方法

php 中定义变量有两种方法:1. 直接赋值;2. 使用 var 关键字显式声明变量。PHP 中定义变量的方法在 PHP 中,有两种方法可以定义变量:1. 直接赋值最简单的方法是直接为变量赋值:$name = "John";$ag
php中定义变量的方法
2024-05-15

MySQL 中的用户定义变量与局部变量?

用户定义的变量也称为会话特定变量。它是一种松散类型变量,可以在会话中的某个位置进行初始化,并包含用户定义变量的值,直到会话结束。用户定义变量以符号 @ 为前缀。例如:@anyVariableName;有两种方法可以初始化用户定义的变量。您可
2023-10-22

jquery定义变量用法

在前端开发中,经常需要使用jquery这个js库来实现各种功能。而jquery中的变量定义与使用方法也是我们需要掌握的一部分知识。本文将讲解jquery中变量的定义及使用方法。一、jquery变量定义在jquery中,定义变量使用var关键字,如下所示:```javascript// 定义一个变量var num = 1; ```同时也支持一次定义多个变量,用逗号隔开即可:```
2023-05-23

php怎么定义变量

在PHP中,可以使用$符号来定义变量。变量名由字母或下划线开头,后面可以跟着字母、数字或下划线。变量名是区分大小写的。以下是一些定义变量的示例:```php$name = "John"; // 定义一个字符串变量$name,并赋值为"Joh
2023-08-14

python定义变量类型

目录定义变量什么是变量?变量的定义?标识符(命令规范)命名原则变量的类型不同类型变量之间的计算变量的输入变量的格式化输出变量赋值删除变量常量定义定义变量 什么是变量? 在程序运行过程中,其值可以改变的量 变量的定义? 在 python 中,
2022-06-02

matlab怎么定义变量

这篇文章主要介绍“matlab怎么定义变量”,在日常操作中,相信很多人在matlab怎么定义变量问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”matlab怎么定义变量”的疑惑有所帮助!接下来,请跟着小编一起来
2023-07-04

C#中怎么定义静态变量

本篇文章给大家分享的是有关C#中怎么定义静态变量,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。C#静态变量定义的实例演示:例如:新建类GlobalParams可以在类中这样写:
2023-06-17

编程热搜

目录