mybatis动态拼接,mybatis动态拼接查询条件

  mybatis动态拼接,mybatis动态拼接查询条件

  00-1010动态拼接实现条件插入。最近在做项目的时候遇到了一个很现实的问题。mybatis插入语句mybatis插入语句一般是这样写的。

  

目录

 

  00-1010即根据不同场景实现条件插入。说白了就是这一列有数据就插入数据,没有数据就自动忽略这一列。

  其实这些在mybatis的api里都有涉及,只是以前没看好。这一块我是最近用了才仔细看的。

  !-新增部门人员-insert id= addstaffrapp 参数type= com . hive SCM . org . dto . staffrappdo insert into base _ department _ staff trim prefix=( suffix=) suffix overrides=, status,group_id,staff_code,realname,create_time,phone,is _ temporary if test= param . email!=null email,/if if test=param.userId!=null user_id,/if if test=param.sex!=null sex,/if/trim trim prefix= values( suffix=) suffix overrides=, #{param.status},#{param.groupId},#{param.staffCode},#{param.realname},#{param.phone},# { param . temporary } if test= param . email!=null#{param.email},/if if test=param.userId!=null#{param.userId},/if if test=param.sex!=null # {param.sex},/if/trim/insert不用说了,这里头的修剪常用来去除空格。这个trim标签里有三个属性,prefix是表示你要拼接sql的前缀,suffix是表示动态sql的后缀,suffixOverrides会帮我去掉最后一个多余的逗号。

  

动态拼接实现有条件的插入

 

  

最近在做项目的时候遇到了一个很现实的问题

!- useGeneratedKeys=true 将新添加的主键分配给自己定义的keyProperty(id)-

 

  Insert id= insert 参数type= xxx.xxx.xxx key属性= id usegeneratedkeys= true usegeneratedkeys的取值范围truefalse默认值为:false。设置含义:是否使用JDBC的getGenereatedKeys方法获取主键,并将其分配给keyProperty设置的域模型属性。我一直以为useGeneratedKeys=true 是添加mysql数据库的主键。实际上,在插入语句之后,我把id赋给了实体bean,也就是说,在使用insert之后,我可以通过使用bean.getId()来获取值。如果为false,bean.getId()=null。

  无论真假,数据库插入的数据都会自动生成主键(前提是设置了自动增长主键)。

  以上个人经验,希望能给大家一个参考,也希望大家能支持盛行的IT。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: