动态SQL | 您所在的位置:网站首页 › 有p开头的汉字 › 动态SQL |
一、动态SQL (一)、if if经常用在动态拼接查询SQL的动态条件,新增或修改的SQL的只新增或修改不为空的属性。 SQL语句 (二)、where where 元素只有在一个以上的if条件有值的情况下才去插入“WHERE”子句。而且,若最后的内容是“AND”或“OR”开头的,where 元素也会合理处理 ... where+if (三)、choose, when, otherwise 有些时候,我们不想用到所有的条件语句,而只想从中择其一。针对这种情况,MyBatis 提供了 choose 元素,它有点像 Java 中的 switch 语句/if...else if...else。 SQL语句 SQL语句 SQL语句 where + choose, when, otherwise 搭配使用 (四)、trim trim标签一般用于去除sql语句中多余的and关键字,逗号,或者给sql语句前拼接 “where“、“set“以及“values(“ 等前缀,或者添加“)“等后缀,可用于选择性插入、更新、删除或者条件查询等操作。 | 属性 | 描述 | | --------------- | ------------------------------------------------------------ | | prefix | 给sql语句拼接的前缀 | | suffix | 给sql语句拼接的后缀 | | prefixOverrides | 去除sql语句前面的关键字或者字符,该关键字或者字符由prefixOverrides属性指定,假设该属性指定为"AND",当sql语句的开头为"AND",trim标签将会去除该"AND" | | suffixOverrides | 去除sql语句后面的关键字或者字符,该关键字或者字符由suffixOverrides属性指定 |
(五)、set 当在 update 语句中使用if标签时,如果前面的if没有执行,则或导致逗号多余错误。使用set标签可以将动态的配置 SET 关键字,并剔除追加到条件末尾的任何不相关的逗号。使用 if+set 标签修改后,如果某项为 null 则不进行更新,而是保持数据库原值。 ... (六)、foreach 动态 SQL 的另外一个常用的必要操作是需要对一个集合进行遍历,通常是在构建 IN 条件语句的时候。
二、多表关系映射 (一)、关联 user(多) -- role 关联处理“有一个”类型的关系。主要用在"多对一"或"一对一"的关系中,取出"一" property 类中指向"一"的属性; javaType 指定property指定属性的类型 column 指定关联的列名,外键 select 指定查询关联的"一"的sql语句的id (二)、集合 主要用在一对多的关系中,取出"多" property 类中指向"多"的属性; javaType 指定property指定属性的类型(java.util.ArrayList) column 指定关联的列名 select 指定查询关联的"多"的sql语句的id |
CopyRight 2018-2019 实验室设备网 版权所有 |