MyBatis + MySQL返回插入成功后的主键id

这是最近在实现perfect-ssm中的一个功能时碰到的一个小问题,觉得需要记录一下,向MySQL数据库中插入一条记录后,需要获取此条记录的id值,以生成对应的key值存入到redis中,id为自增int主键。

修改

原代码为:

 <insert id="insertArticle" parameterType="Article">
insert into ssm_article(article_title,article_create_date,article_content,add_name)
values(#{articleTitle},#{articleCreateDate},#{articleContent},#{addName})
</insert>

这种方式只是返回一个影响行数值,并不能满足此次需求,于是做了如下修改:

 <insert id="insertArticle" useGeneratedKeys="true" keyProperty="id" parameterType="Article">
insert into ssm_article(article_title,article_create_date,article_content,add_name)
values(#{articleTitle},#{articleCreateDate},#{articleContent},#{addName})
</insert>

在insert中将useGeneratedKeys属性设置为true,并制定keyProperty为Article对象的id,关于这两个参数,官方文档解释如下:


mybatis

测试

测试用例如下:

    @Test
    public void insertArticleTest() throws Exception {
        Article article = new Article();
        article.setArticleContent("article");
        article.setAddName("13");
        article.setArticleClassID(1);
        article.setArticleTitle("title");
        article.setArticleCreateDate(DateUtil.getCurrentDateStr());
        Assert.assertTrue(article.getId()==null);
        System.out.println("insert前article的id:"+article.getId());
        //执行insert操作
        articleDao.insertArticle(article);
        Assert.assertTrue(article.getId()!=null);
        System.out.println("insert后article的id:"+article.getId());
    }

结果如下:


result

mysql中表的记录如下:


mysql

结语

首发于我的个人博客,新的项目演示地址:perfect-ssm,登录账号:admin,密码:123456
[图片上传失败...(image-24ad73-1517122281424)]
如果有问题或者有一些好的创意,欢迎给我留言,也感谢向我指出项目中存在问题的朋友。

如果你想继续了解该项目可以查看整个系列文章Spring+SpringMVC+MyBatis+easyUI整合系列文章,也可以到我的GitHub仓库或者开源中国代码仓库中查看源码及项目文档。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 【MySQL】Linux下MySQL 5.5、5.6和5.7的RPM、二进制和源码安装 1.1BLOG文档结构图 ...
    小麦苗DB宝阅读 13,604评论 0 31
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,306评论 19 139
  • 中午约邓瑞来家里做麻辣香锅吃。 本来准备早点去买菜早点准备的,因为跟彬姐打电话所以拖到了中午12点才晃晃悠悠的出门...
    山顶的黑狗兄阅读 1,280评论 0 0
  • 我们在茫茫人海中相遇、相识 却因心中另一个他(她)的伤,相互安慰最后走在一起 彼此相离 彼...
    御寒茶阅读 3,047评论 0 1
  • 昨夜细雨痴缠,若当年江南初遇。 今朝清风拂柳,却把梅花伤残。 半生缘,难释然,繁华落曲准可弹。 傲立天地间,已把风...
    清风简阅读 1,833评论 0 2