关于(逻辑)删除接口java代码

文章详细描述了在SpringBoot应用中,如何实现一个逻辑删除接口`/deleteCategory`,包括参数验证、事务管理以及数据库操作,确保只有在指定分类下无指令时才能成功删除分类。
摘要由CSDN通过智能技术生成
/**
 * 删除接口(逻辑删除)
 */
@GetMapping("/deleteCategory")
public Result updateCategory(@RequestParam("id") Long id) {
    broadScopeService.updateCategory(id);
    return Result.success();
}

service

Result updateCategory(Long id);
/**
     * 删除分类(修改)
     *
     * @param id
     * @return
     */
    @Transactional
    @Override
    public Result updateCategory(Long id) {
        if (ObjectUtil.isNull(id)){
            throw new BusinessException(MessageConstant.ID_NULL);
        }
        //当用户点选的指令分类下没有任何指令时,才可删除
        long l = broadScopePromptMapper.countByCategoryId(id);
        if (l ==0){
            boolean b = broadScopeMapper.deleteCategory(id);
            if (ObjectUtil.isNull(b)){
                //删除失败
                throw new BusinessException(MessageConstant.DELETE_FAILED);
            }
        }else {
            //该分类下有指令,不能删除
            throw new BusinessException(MessageConstant.CATEGORY_DELETE);
        }
        return Result.success();
    }
broadScopePromptMapper

mapper:

/**
 * 根据id查询分类下有多少个指令
 * @param id
 * @return
 */
long countByCategoryId(Long id);

xml:

<!--查询两个表中有没有相同的名字数量-->
<select id="countByCategoryId" resultType="java.lang.Long">

    SELECT COUNT(*) AS related_category_count
    FROM broadscope_prompt
    WHERE category = (SELECT category_name FROM broadscope_prompt_category WHERE id = #{id});

</select>
BroadScopeMapper

mapper:

boolean deleteCategory(Long id);

xml:

<!--删除分类-->
<update id="deleteCategory">
    update  broadscope_prompt_category
    <set>
        <if test="status!=null">
            status=0
        </if>
    </set>
    where id=#{id}
</update>

测试:

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java项目中,常见的业务逻辑代码括但不限于以下几个方面: 1. 数据库操作:包括数据库的连接、查询、入、更新、删除等操作。可以使用JDBC或者ORM框架(如Hibernate、MyBatis)来实现。 2. 业务逻辑处理:根据具体的业务需求,进行数据处理、计算、验证等操作。这部分代码通常包括条件判断、循环、数据转换等。 3. 事务管理:对于需要保证数据一致性的操作,需要使用事务管理来确保操作的原子性、一致性、隔离性和持久性。可以使用Spring框架提供的事务管理功能。 4. 异常处理:对于可能出现的异常情况,需要进行合理的异常处理。可以使用try-catch语句块来捕获异常,并进行相应的处理或者抛出自定义异常。 5. 日志记录:在业务逻辑代码中,通常需要记录一些关键信息或者错误信息,以便后续排查问题。可以使用日志框架(如Log4j、Logback)来记录日志。 6. 接口调用:如果项目需要与其他系统进行交互,可能需要编写接口调用的代码。可以使用HTTP客户端(如HttpClient)或者WebService框架(如CXF)来实现接口调用。 7. 定时任务:对于需要定时执行的任务,可以使用定时任务框架(如Quartz)来实现。定时任务可以用于数据同步、数据清理等场景。 8. 缓存处理:为了提高系统性能,可以使用缓存来存储一些频繁访问的数据。常见的缓存框架有Redis、Ehcache等。 以上是常见的业务逻辑代码,具体的业务逻辑代码会根据项目需求和业务场景的不同而有所差异。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值