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会导致置空,为其单独再次配置就不置空了
相关文章推荐
- mybatis04(注解实现一对一动态sql 的增删改查)
- mybatis注解实现增删改查,一对一等映射和sql动态查询
- Mybatis注解-注解方式的动态SQL语句
- Mybatis框架运行机制(增删改查,一对一,一对多,日志系统,单元测试,版本控制,缓存,动态Sql)
- mybatis3通过provider注解结合动态sql实现增删改查,不再依赖xml成为可能
- SpringBoot入门-19(springboot集成mybatis注解形式增删查改properties配置,利用《script》实现动态SQL)
- Mybatis 3 注解方式创建动态SQL
- SpringBoot入门-21(springboot集成mybatis注解形式增删查改properties配置,利用@Provider实现动态SQL)
- mybatis03(配置文件实现一对一动态sql 的增删改查)
- mybatis中注解映射SQL示例代码
- Springboot + Mybatis (注解+动态Sql)+RESTFUL+thymeleaf
- Mybatis 使用Mapper接口的Sql动态代码方式进行CURD和分页查询
- MyBatis注解应用之动态SQL语句
- SpringBoot下Mybatis-注解动态sql开发的坑
- 小峰mybatis(5)mybatis使用注解配置sql映射器--动态sql
- mybatis学习之路----动态sql之if条件判断各种使用方式
- [bigdata-076] maven+mybatis+mysql 数据库 mybatis注解方式 示例
- spring mybatis 用注解方式实现动态切切换数据源
- Mybatis框架基于注解的方式,实对数据现增删改查
- Mapper动态代理方式的CRUD(增删改查)(MyBatis接口开发)