Mybaits动态sql

简介: Mybaits动态sql

一、传入的参数为集合或数组,在xml里面进行遍历时


1.传入参数格式

private List<String> zxValue = new ArrayList<>();
private List<String> bxgdList = Arrays.asList("1", "2");
private List<String> qzsbList = Arrays.asList("3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14");
private List<String> wzList = Arrays.asList("15", "16");
private List<String> zxList = Arrays.asList("17", "18", "19", "20");


2.xml里面进行遍历时的写法

SELECT * FROM PS_LAWCASE C
        join
        PS_LAWCASE_PERSON P
        ON C.ID=P.LAWCASE_ID
        join PS_SPECIAL S
        on C.ID= S.LAWCASE_ID
        <where>
        <if test="psQueryVo.zxValue!=null and psQueryVo.zxValue.size>0">
        and S.type in
            <foreach collection="psQueryVo.zxValue" item="type" index="index"
                     open="(" close=")" separator=",">
                #{type,}
            </foreach>
        </if>
            <if test="psQueryVo.title!=null and psQueryVo.title !=''">
                <bind name="title" value="'%'+psQueryVo.title+'%'"/>
                AND c.title like #{psQueryVo.title}
            </if>


需要注意的是在判断属性是否为空时不是比较的""值而是比较的size


二、当在xml里面需要对传入的值进行like以及使用%时,可以使用bind进行绑定


<if test="psQueryVo.name!=null and psQueryVo.name !=''">
                <bind name="name" value="'%'+psQueryVo.name+'%'"/>
                AND p.name like #{psQueryVo.name}
            </if>



相关文章
|
7月前
|
SQL Java 编译器
SQL 语言:嵌入式 SQL 和动态 SQL
SQL 语言:嵌入式 SQL 和动态 SQL
121 4
|
8月前
|
SQL Java 关系型数据库
Mybatis多表关联查询与动态SQL(下)
Mybatis多表关联查询与动态SQL
147 0
|
8月前
|
SQL Java 数据库连接
Mybatis多表关联查询与动态SQL(上)
Mybatis多表关联查询与动态SQL
242 0
|
6月前
|
SQL Java 数据库连接
mybatis动态SQL常用语法总结
MyBatis 使用 OGNL 表达式语言处理动态SQL,如 `if` 标签进行条件判断,`choose`、`when`、`otherwise` 实现多条件选择,`where`、`set` 管理SQL关键字,`trim` 提供通用修剪功能,`foreach` 遍历集合数据。`sql` 和 `include` 用于代码重用,`selectKey` 处理插入后的返回值。参数传递支持匿名、具名、列表、Map、Java Bean和JSON方式。注意SQL转义及使用合适的jdbcType映射Java类型。
121 7
|
7月前
|
SQL XML 数据库
后端数据库开发高级之通过在xml文件中映射实现动态SQL
后端数据库开发高级之通过在xml文件中映射实现动态SQL
71 3
|
7月前
|
SQL XML Java
MyBatis第四课动态SQL
MyBatis第四课动态SQL
|
7月前
|
SQL XML Java
Mybatis进阶——动态SQL(1)
Mybatis进阶——动态SQL(1)
53 3
|
7月前
|
SQL 存储 关系型数据库
17. Mysql 动态SQL
17. Mysql 动态SQL
116 1
|
7月前
|
SQL 缓存 Java
Java框架之MyBatis 07-动态SQL-缓存机制-逆向工程-分页插件
Java框架之MyBatis 07-动态SQL-缓存机制-逆向工程-分页插件
|
7月前
|
SQL Java 数据库连接
MyBatis动态SQL
MyBatis动态SQL
73 0
下一篇
开通oss服务