zoukankan      html  css  js  c++  java
  • mybtatis添加数据返回主键

    今天心血来潮,想用自己的项目来发布一些博客,可是当我提交成功后,想要访问的时候,突然告诉我找不到?!?
    吓得我赶紧去查看一下数据库日志,结果发现主键对不上。
    是这样,我的博客是放在数据库中的,而为了方便,我又将博客分成了两个表,一个表存放博客的基本信息,一个存放博客的内容信息,插入的时候,先存放基本信息返回主键id,然后将id和内容插入到内容表中,本来是没有问题的,后来才发现,逆向工程的insert的语句,返回的不是主键id,而是影响的行数。问题找到了,那么解决他就很简单了。

    解决办法

    经过查阅资料发现,主键id是可以返回的,但是会返回给你当初insert进去的对象里面的属性中,不会返回。这也是当然的吧,万一主键约束有多个不就瞎了,你咋返回?

    但是默认的insert是不会返回的,必须保证你的数据库主键是设置成了逐步递增的,而且,还需要下面三个属性:

    • useGeneratedKeys="true" (必要)
    • keyProperty="xx" (必要,你想要返回给对象的属性名称)
    • keycolumn="xx" (非必要,这个是指定数据库中那个是主键)

    将这三个属性写在xml的方法上,像是这样

      <insert id="insertSelective" parameterType="run.app.entity.model.Blog" useGeneratedKeys="true" keyProperty="id" >
    

    然后你的主键就会返回给你这个Blog对象了,大功告成。

  • 相关阅读:
    常用正则表达式
    The Skins Factory 界面设计欣赏
    The Regulator 轻松上手
    Visual C#的Web XML编程
    业务流程不是需求
    如使用ODBC连接informix
    AJAX在信息系统中的应用研究
    浅谈几个SQL的日志概念
    量产 朗科(Netac)朗盛系列闪存盘E108 8G 手记
    【转】告诉大家他们是怎么成为富翁的
  • 原文地址:https://www.cnblogs.com/adroitwolf/p/14310030.html
Copyright © 2011-2022 走看看