mybatis if test 相等的情况如何动态拼接sql

今天程序需要根据前台的传过来的状态判断在数据库里是取 where a>b

还是 a<b 还是 a=0 的情况  搞了一下午最后试了下 在if 里面拼接  #{status}=#{status}  一切ok了

详细代码如下

                                <if test=" status==1">

 				 and inv.security_inventory < inv.actual_inventory and #{status} = #{status}
 				 </if>
 				<if test="  status==2"><!-- 缺货-->
 					 and inv.security_inventory > inv.actual_inventory  and #{status} = #{status}
 				</if>
 				<if test="  status==3"><!-- 无货-->
 					 and inv.security_inventory = 0  and #{status} = #{status}
 				</if>

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-19 06:51:34

mybatis if test 相等的情况如何动态拼接sql的相关文章

mybatis-使用if动态拼接sql

一.创建项目和数据库    项目名称:mybatis092901    数据库名称:mybatis0929        表名称:dept        CREATE TABLE `dept` (          `deptNo` int(11) NOT NULL,          `deptName` varchar(30) DEFAULT NULL,          `location` varchar(30) DEFAULT NULL,          PRIMARY KEY (`

动态拼接SQL计算公式

1 --模拟数据 2 IF OBJECT_ID('tempdb..#t')>0 DROP TABLE #t 3 SELECT * INTO #t 4 FROM ( 5 SELECT '1' id,2030 g,265 h, 830 k,'g*h+h*k' gs,0 tt 6 UNION ALL 7 SELECT '2' id,2030 g,0 h, 0 k,'g*4' gs,0 tt 8 UNION ALL 9 SELECT '3' id,2030 g,265 h, 0 k,'(g+h)*2'

java动态拼接sql语句并且执行时给sql语句的参数赋值

问题 在这里举一个例子,比如我要做一个多条件模糊查询,用户输入的时候有可能输入一个条件,也有可能输入两个条件,这时执行查询的sql语句就不确定了,但可以用动态拼接sql语句来解决这个问题. 解决方法 1.就拿我上面的那个多条件模糊查询为例,第一步是拼接sql语句,先定义一个通用的sql语句,String sql = "select * from user where 1 = 1 ";这里添加where 1= 1是一个小技巧,方便后面sql语句的拼接. String sql = &quo

mybatis使用注解替代xml配置,动态生成Sql

mybatis使用注解替代xml配置时,遇到判断条件是否为null或者为空时,@Select很难搞定,不知道怎么办? mybatis3中增加了使用注解来配置Mapper的新特性,使用 SelectProvider来动态生成sql. 典型的使用场景 1. 无参数@SelectProvide方法在Mapper接口方法上和@SelectProvide指定类方法上,均无参数:UserMapper.java: 1     @SelectProvider(type = SqlProvider.class, 

mysql 存储过程动态拼接sql并执行赋值

CREATE DEFINER = CURRENT_USER PROCEDURE `NewProc`(in _xnb varchar(50)) BEGIN ## 定义变量 DECLARE _num FLOAT(14,6) DEFAULT 0; ## @表示全局变量 相当于php $ ## 拼接赋值 INTO 必须要用全局变量不然语句会报错 SET @strsql = CONCAT('SELECT SUM(',_xnb,') INTO @tnum FROM btc_user_coin'); ## 预

动态拼接SQL语句

1.参考官方文档 ? if:字符判断 ? choose (when, otherwise):分支选择 ? trim (where, set):字符串截取:其中where标签封装查询条件,set标签封装修改条件 ? foreach 2.if案例 1)在EmployeeMapper接口中添加一个方法: //携带了哪个字段,查询条件就带上哪个字段的值 public List<Employee> getEmployeeByConditionIf(Employee employee); 2).如果要写下

mybatis-使用where动态拼接sql

一.创建项目和数据库    项目名称:mybatis092901    数据库名称:mybatis0929        表名称:dept        CREATE TABLE `dept` (          `deptNo` int(11) NOT NULL,          `deptName` varchar(30) DEFAULT NULL,          `location` varchar(30) DEFAULT NULL,          PRIMARY KEY (`

mybatis-使用choose动态拼接sql

一.创建项目和数据库    项目名称:mybatis092901    数据库名称:mybatis0929        表名称:dept        CREATE TABLE `dept` (          `deptNo` int(11) NOT NULL,          `deptName` varchar(30) DEFAULT NULL,          `location` varchar(30) DEFAULT NULL,          PRIMARY KEY (`

mybatis-使用set动态拼接sql

一.创建项目和数据库    项目名称:mybatis092901    数据库名称:mybatis0929        表名称:dept        CREATE TABLE `dept` (          `deptNo` int(11) NOT NULL,          `deptName` varchar(30) DEFAULT NULL,          `location` varchar(30) DEFAULT NULL,          PRIMARY KEY (`