您的位置:首页 > 数据库

mybatis注解方式之动态SQL【增删改查、包含一对一一对多示例】

2019-08-01 16:12 211 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_42672424/article/details/98068314
  • 1、动态sql插入及将主键task_id注入到实体类taskId属性中
@Insert({"<script>"," insert into  "+ TableUtils.CLOUD_TASK_TABLE+
"<trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\" >" +
" <if test=\"nUserId != null\" > n_user_id, </if>" +
..........
" </trim>" +
" <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\" >" +
" <if test=\"nUserId != null\" > #{nUserId}, </if>" +
.......
" </trim>", "</script>"})
@Options(useGeneratedKeys = true, keyProperty = "taskId", keyColumn = "task_id")//将主键task_id注入到实体类taskId属性中
Integer releaseTask(CloudTaskDTO cloudTaskDO);

注意: @Options(useGeneratedKeys = true, keyProperty = “taskId”, keyColumn = “task_id”)//将主键task_id注入到实体类taskId属性中

  • 2、动态sql修改
@Update({"<script>"," update  "+ TableUtils.CLOUD_TASK_TABLE+
"<set > " +
" <if test=\"title != null\" >title = #{title}, </if> " +
.........
" </set>"+
"where task_id = #{taskId}"
, "</script>"})
Integer updateTask(CloudTaskDTO cloudTaskDTO);
  • 3、动态sql删除
@Delete({"<script>","delete from "+ TableUtils.CLOUD_TASK_ENROLL_TABLE + " where  n_user_id = #{nUserId} and task_id =#{taskId} and enroll_id > 0", "</script>"})
Integer deleteEnrollCount(CloudTaskEnrollDO cloudTaskEnrollDO);

动态条件可以模拟查询

  • 4、动态sql查询【foreach 、及多参数条件赛选、一对多.多对一查询】
String SELECTSQL = " <where >" +
" <if test=\"cloudTaskDO.taskId != null  \"> and  task_id = #{cloudTaskDO.taskId} </if> " +
" <if test=\"cloudTaskDO.selectUserId != null and cloudTaskDO.source==2   and  taskIdArr !=null \"> and task_id in " +
" <foreach collection=\"taskIdArr\" index=\"index\" item=\"taskIdArr\" open=\"(\" separator=\",\" close=\")\"> " +
" #{taskIdArr} " +
" </foreach>"+
" </if> " +
" </where>";
@Select({"<script>", " select "+TASK_SQL+" from  "+ TableUtils.CLOUD_TASK_TABLE +SELECTSQL+" order by create_time desc limit #{pageDO.limitPage},#{pageDO.perPage} ", "</script>"})
@Results({
@Result(property = "cloudUserDTO", column = "n_user_id",
one = @One(select = "com.wuyi.neighbourcloud.mapper.UserMapper.partCloudUserById")),
@Result(property = "taskTable", column = "task_id",
many = @Many(select = "com.wuyi.neighbourcloud.mapper.CloudTaskClassifyMapper.listTaskTableId")),
@Result(property = "taskId", column = "task_id"),
@Result(property = "nUserId", column = "n_user_id"),//由于使用过该id会导致置空,为其单独再次配置就不置空了
})
List<CloudTaskDTO> listTask(@Param("cloudTaskDO")CloudTaskDTO cloudTaskDO,@Param("taskIdArr") List<Integer> taskIdArr, @Param("pageDO") PageDO pageDO);

注意: @Result(property = “nUserId”, column = “n_user_id”),//由于使用过该id会导致置空,为其单独再次配置就不置空了

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: