MyBatis学习之三动态SQL语句[借鉴].pdfVIP

  • 1
  • 0
  • 约1.76万字
  • 约 6页
  • 2021-10-19 发布于福建
  • 举报
MyBatis 学习 之三动态 SQL 语句 三、动态 SQL 语句 MyBatis 学习 之 一、 MyBatis 简介与配置 MyBatis+Spring+MySql MyBatis 学习 之 二、 SQL 语句映射文件 (1)resultMap MyBatis 学习 之 二、 SQL 语句映射文件 (2)增删改查、参数、缓存 MyBatis 学习 之 三、动态 SQL 语句 MyBatis 学习 之 四、 MyBatis 配置文件 有些时候, sql 语句 where 条件中,需要一些安全判断,例如按某一条件查询时如果传入的 参数是空, 此时查询出的结果很可能是空的, 也许我们需要参数为空时, 是查出全部的信息。 使用 Oracle 的序列、 mysql 的函数生成 Id 。这时我们可以使用动态 sql 。 下文均采用 mysql 语法和函数(例如字符串链接函数 CONCAT )。 3.1 selectKey 标签 在 insert 语句中, 在 Oracle 经常使用序列、 在 MySQL 中使用函数来自动生成插入表的主键, 而且需要方法能返回这个生成主键。使用 myBatis 的 selectKey 标签可以实现这个效果。 下面例子,使用 mysql 数据库自定义函数 nextval(student) ,用来生成一个 key ,并把他设置 到传入的实体类中的 studentId 属性上。所以在执行完此方法后,边可以通过这个实体类获 取生成的 key 。 !-- 插 入 学 生 自 动 主 键 -- insert id=createStudentAutoKey parameterType=liming.student.manager.data.model.StudentEntity 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=org.apache.ibatis.type.BlobTypeHandler}, #{classId}, #{placeId}) /insert 调用接口方法,和获取自动生成 key StudentEntity entity = new StudentEntity(); entity.setStudentName( 黎 明 你 好 ); entity.setStudentSex(1); entity.setStudentBirthday(DateUtil.parse(1985-05-28)); entity.setClassId; entity.setPlaceId; this.dynamicSqlMapper.createStudentAutoKey(entity); System.out.println( 新 增 学 生 ID: + entity.getStudentId()); selectKey 语句属性配置细节: 属性 描述

文档评论(0)

1亿VIP精品文档

相关文档