返回顶部
首页 > 资讯 > 精选 >mybatis教程之动态sql语句_动力节点Java学院整理
  • 781
分享到

mybatis教程之动态sql语句_动力节点Java学院整理

mybatis动态sqlava 2023-05-31 05:05:03 781人浏览 安东尼
摘要

有些时候,sql语句where条件中,需要一些安全判断,例如按某一条件查询时如果传入的参数是空,此时查询出的结果很可能是空的,也许我们需要参数为空时,是查出全部的信息。使用oracle的序列、mysql的函数生成Id。这时我们可以

有些时候,sql语句where条件中,需要一些安全判断,例如按某一条件查询时如果传入的参数是空,此时查询出的结果很可能是空的,也许我们需要参数为空时,是查出全部的信息。使用oracle的序列、mysql的函数生成Id。这时我们可以使用动态sql。

下文均采用Mysql语法和函数(例如字符串链接函数CONCAT)。

selecTKEy 标签

在insert语句中,在Oracle经常使用序列、在mysql中使用函数来自动生成插入表的主键,而且需要方法能返回这个生成主键。使用mybatis的selectKey标签可以实现这个效果。

下面例子,使用mysql数据库自定义函数nextval('student'),用来生成一个key,并把他设置到传入的实体类中的studentId属性上。所以在执行完此方法后,边可以通过这个实体类获取生成的key。

<!-- 插入学生 自动主键--> <insert id="createStudentAutoKey" parameterType="bjpowernodestudentmanagerdatamodelStudentEntity" keyProperty="studentId">   <selectKey keyProperty="studentId" resultType="String" order="BEFORE">     select nextval('student')   </selectKey>   INSERT INTO STUDENT_TBL(STUDENT_ID,               STUDENT_NAME,               STUDENT_SEX,               STUDENT_BIRTHDAY,               STUDENT_PHOTO,               CLASS_ID,               PLACE_ID)   VALUES (#{studentId},       #{studentName},       #{studentSex},       #{studentBirthday},       #{studentPhoto, javaType=byte[], jdbcType=BLOB, typeHandler=orgapacheibatistypeBlobTypeHandler},       #{classId},       #{placeId}) </insert> 

--结束END--

本文标题: mybatis教程之动态sql语句_动力节点Java学院整理

本文链接: https://lsjlt.com/news/223688.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作