逆向自动生成的mybatis对应配置mapper文件里柳州医学高等专科学校面,有两个方法,分别为inrt和inrtlective。这两个方法均是插入对象的方法。为什么会有两个插入方法呢?这里说一下两者的区别。
首先我们看代码如下:
inrt方法
<inrt id="inrt" parametertype="demo.pojo.domain.hspmediainf" > inrt into media_inf (med_q, emg_q, med_class, med_name, med_file, med_extend, med_type, med_date, med_size, med_data) values (#{medq,jdbctype=varchar}, #{emgq,jdbctype=varchar}, #{medclass,jdbctype=varchar}, #{medname,jdbctype=varchar}, #{medfile,jdbctype=varchar}, #{medextend,jdbctype=varchar}, #{medtype,jdbctype=varchar}, #{meddate,jdbctype=timestamp}, #{medsize,jdbctype=decimal}, #{meddata,jdbctype=blob}) </inrt>
inrtlective方法:
<inrt id="inrtlective" parametertype="activetech.zyyhospital.pojo.domain.hspmediainf" > inrt into hsp_media_inf <trim prefix="(" suffix=")" suffixoverrides="," > <if test="medq != null" > med_q, </if> <if test="emgq != null" > emg_q, </if> <if test="medclass != null" > med_class, </if> <if test="medname != null" > med_name, </if> 假行僧 张宇<if test="medfile != null" > med_file, </if> <if test="medextend != null" > med_extend, </if> <if test="medtype != null" > med_type, </if> <if test="meddate != null" > med_date, </if> <if test="medsize != null" > med_size, </if> <if test="meddata != null" > med_data, </if> </trim> <trim prefix="values (" suffix=")" suffixoverrides="," > <if test="medq != null" > #{medq,jdbctype=varchar}, </if> <if test="emgq != null" >短篇鬼故事大全 #{emgq,jdbctype=varchaE2160r}, </if> <if test="medclass != null" > #{medclass,jdbctype=varchar}, </if> <if test="medname != null" > #{medname,jdbctype=varchar}, </if> <if test="medfile != null" > #{medfile,jdbctype=varchar}, </if> <if test="medextend != null" > #{medextend,jdbctype=varchar}, </if> <if test="medtype != null" > #{medtype,jdbctype=varchar}, </if> <if test="meddate != null" > #{meddate,jdbctype=timestamp}, </if> &脑筋急转弯大全及答案lt;if test="medsize != null" > #{medsize,jdbctype=decimal}, </if> <if test="meddata != null" > #{meddata,jdbctype=blob}, </if> </trim> </inrt>
从上面连段代码我们会发现inrtlective对应的sql语句加入了null校验,只会插入数据不为null的字段值。inrt则会插入所有字段,会插入null。
笔者反思但是为什么会有这两种方法呢?
总结:由于真实开发中,我们在修改功能的from表单,或者一个类的某些模块编辑的from表单中不会将所有的数据都查询出来放到from表单中然后再inrt到数据库,所以我们经常在这些功能中使用inrtlective方法,此时只针对我们操作的属性进行inrt操作,而如果使用inrt方法,将会把非表单内的内容置为null从而影响数据安全。
本文发布于:2023-04-04 00:22:37,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/54c2b0433c492db0820528c9614766e5.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:MyBatis插入Insert、InsertSelective的区别及使用心得.doc
本文 PDF 下载地址:MyBatis插入Insert、InsertSelective的区别及使用心得.pdf
留言与评论(共有 0 条评论) |