Mybatis中的update动态SQL语句Mybatis中的CRUD操作(增删改查)中,简单的SQL操作⽐较直观,如查找操作:其中id对应同名java⽂件中的⽅法,resultMap对应的⾃定义的数据类型(当使⽤java⾃带类型就更容易了,⽐如之类的)。但是涉及到更新操作时,可能不需要对所有字段更新,这时不需要更新的字段需要保持原字段信息,当使⽤以下信息就会报错: update ENTITY_RELATION SET SRC_ID=#{srcId},SRC_TYPE=#{srcType},DEST_ID=#{destId}, DEST_TYPE=#{destType},REL_TYPE=#{relType},STATUS=#{status},SN_ID=#{snId} where id=#{id}因为不更新的字段,会被传递null到SQL中,引起异常。这时就需要进⾏动态SQL拼接,如下,使⽤trim就是为了删掉最后字段的“,”。主要不⽤单独写SET了,因为set被包含在trim中了: UPDATE ENTITY_RELATION SRC_ID=#{srcId},SRC_TYPE=#{srcType},DEST_ID=#{destId},DEST_TYPE=#{destType},REL_TYPE=#{relType},STATUS=#{status},SN_ID=#{snId}, WHERE id=#{id}
2023年8月3日发(作者:)
Mybatis中的update动态SQL语句Mybatis中的CRUD操作(增删改查)中,简单的SQL操作⽐较直观,如查找操作:其中id对应同名java⽂件中的⽅法,resultMap对应的⾃定义的数据类型(当使⽤java⾃带类型就更容易了,⽐如之类的)。但是涉及到更新操作时,可能不需要对所有字段更新,这时不需要更新的字段需要保持原字段信息,当使⽤以下信息就会报错: update ENTITY_RELATION SET SRC_ID=#{srcId},SRC_TYPE=#{srcType},DEST_ID=#{destId}, DEST_TYPE=#{destType},REL_TYPE=#{relType},STATUS=#{status},SN_ID=#{snId} where id=#{id}因为不更新的字段,会被传递null到SQL中,引起异常。这时就需要进⾏动态SQL拼接,如下,使⽤trim就是为了删掉最后字段的“,”。主要不⽤单独写SET了,因为set被包含在trim中了: UPDATE ENTITY_RELATION SRC_ID=#{srcId},SRC_TYPE=#{srcType},DEST_ID=#{destId},DEST_TYPE=#{destType},REL_TYPE=#{relType},STATUS=#{status},SN_ID=#{snId}, WHERE id=#{id}
发布评论