zoukankan      html  css  js  c++  java
  • mybatis 插入语句 返回自增长id方法

    背景:目前有个插入语句需要获取插入记录的id  因为id是自增长的,所以要在插入后返回这个id

    错误1:

    mapper.xml:

    <!-- 新增    返回自增长id-->
    <insert id="save" parameterType="pd" resultType="int">
    	insert into sys_push(
    		username,title,content,publisher,pushtime	
    	) values (
    		#{username},#{title},#{content},#{publisher},#{pushtime}
    	)
    </insert>

    我天真的以为  需要用resultType返回一个int类型的,结果项目启动直接报错了,因为insert方法根本就没有resultType! 哎 基础不扎实啊。。。

    之后百度了下 哦 原来返回id是这么用的

    正确: keyProperty="id" useGeneratedKeys="true"

    <!-- 新增    返回自增长id-->
    	<insert id="save" keyProperty="id" useGeneratedKeys="true" parameterType="pd">
    		insert into sys_push(
    			username,title,content,publisher,pushtime	
    		) values (
    			#{username},#{title},#{content},#{publisher},#{pushtime}
    		)
    	</insert>

    重新启动后   调用查询语句发现:

    int id = pushService.save(pd);

    怎么id都是1。。。。

    错误2:

    又百度了一下,原来insert这个返回值返回的是插入成功的条数,不是id啊。。。哎 基础不扎实啊。。。

    正确:

    在查询后,要获取的id其实已经在传入对象的参数里了,用xx.getId()方法就可以直接获取到了。

    int insertNum = pushService.save(pd);//插入的条数
    Long id = (Long) pd.get("id");//获取id

    我这里传入的是封装的pd对象,获取方法是get("id") 

    如果是传入user类,获取方式是      Long id = user.getId();//该对象的自增ID

    注意: 返回的id是long类型

    over!

  • 相关阅读:
    在PHP语言中使用JSON
    PHP中生成json信息的方法
    Oracle 11g数据库详细安装步骤图解
    spring data jpa
    missing artifact com.oracle:ojdbc14:jar:10.2.0.2.0解决办法
    HDU 2841 Visible Trees
    LightOJ 1348 Aladdin and the Return Journey
    FZU 2082 过路费
    BZOJ 1036: [ZJOI2008]树的统计Count
    BZOJ 2243: [SDOI2011]染色
  • 原文地址:https://www.cnblogs.com/zhi-ming/p/10453131.html
Copyright © 2011-2022 走看看