【Mybatis】计算库主键设为自增,添加后,获取该自增id并且将整个对象返回给运维

原创
小哥 3年前 (2022-11-07) 阅读数 12 #C#
文章标签 .net

【Mybatis数据库主键设置为自增加,插入后,获得自增加。id并将整个对象返回到前端

原始项目的Pojo、dao层的内容将保持不变,只有以下过程中的内容将更改。

1、Service

在原来service图层添加新界面 insertDmsZhiKongRuleBack ,接口不需要sql声明,所以没有必要xml当然,文档不用于dao要添加的层。

/**
 * 添加质量控制规则记录和退货记录
 * @param dmsZhiKongRule
 * @return dmsZhiKongRule
 */
DmsZhiKongRule insertDmsZhiKongRuleBack(DmsZhiKongRule dmsZhiKongRule);

2、ServiceImpl

ServiceImpl类实现上面新添加的接口,该接口调用。 insertDmsZhiKongRule 接口,插入内容,此时插入的内容已经具有主键id。

  @Override
    public DmsZhiKongRule insertDmsZhiKongRuleBack(DmsZhiKongRule dmsZhiKongRule) {
        dmsZhiKongRuleDao.insertDmsZhiKongRule(dmsZhiKongRule);
        return dmsZhiKongRule;
    }

3、xml配置文件

其中 useGeneratedKeys="true" keyProperty="nodeId" 是mybatis控制自增长的获取id属性,必须写入,
useGeneratedKeys=“true”:告诉mybatis使用数据库主键自动生成策略生成。Id,
keyProperty=“id”:告诉mybatis自动生成主键id分配给传入参数对象id属性,然后可以在传入的参数对象中传递该属性。id获取生成的主键。



insert into dms_zhikong_rule (node_name,parent_node_id,parent_node_name,
                                parent_node_rule,monitor_code,monitor_name,leaf_node)
    values (#{nodeName},#{parentNodeId},#{parentNodeName},
            #{parentNodeRule},#{monitorCode},#{monitorName},#{leafNode})

4、Controller

调用insert何时,呼叫新添加的 insertDmsZhiKongRuleBack 接口。

   @ApiOperation("插入")
    @PostMapping("/insert")
    public CommonResult insert(@Validated @RequestBody DmsZhiKongRule dmsZhiKongRule) {
        DmsZhiKongRule dmsZhiKongRule1 = dmsZhiKongRuleService.insertDmsZhiKongRuleBack(dmsZhiKongRule);
        if (dmsZhiKongRule1 != null) {
            return CommonResult.success(dmsZhiKongRule);
        } else {
            return CommonResult.failed("新增失败");
        }
    }

5、测试


5,参考文献
1、 https://blog.csdn.net/dsl59741/article/details/107817982
2、 https://blog.csdn.net/qq_46209794/article/details/119801558
3、 https://blog.csdn.net/mytt_10566/article/details/74279105
4、 https://blog.csdn.net/du939/article/details/100014905

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除