mybatis获取插入的语句主键(自增主键)

    <insert id="insertUser" parameterType="User">
        <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
            SELECT LAST_INSERT_ID()
        </selectKey>
        insert into users(name, age, gmt_create, money) VALUE (‘xiao‘, 24, ‘1991-06-26‘, 10000)
    </insert>
     SqlSessionFactory sessionFactory = MybatisUtils.getFactory();
        SqlSession session = sessionFactory.openSession();
        String statement = "test.UserMapper.insertUser";
        Date now = new Date();
        User user = new User("xiao", 18, now, 1000);
        session.insert(statement, user);
        System.out.println(user.getId());
        session.commit();
        session.close();

如果注释after那段,输出的为0。

时间: 2024-10-03 22:42:11

mybatis获取插入的语句主键(自增主键)的相关文章

Mybatis获取插入记录的自增长ID

需求:使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的自增主键值. 方法:在mapper中指定keyProperty属性,示例如下:  <insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="userId" parameterType="com.chenzhou.mybatis.User">       insert 

Mybatis获取插入记录主键

<insert id="createUser" parameterType="cn.User" useGeneratedKeys="true" keyProperty="userId"> INSERT INTO user(name,create_time,remark,create_user_id) VALUE(#{name,jdbcType=VARCHAR},NOW(),'new user',#{createUs

Mybatis获取插入自增主键

只需在插入语句上配置: useGeneratedKeys="true" keyProperty ="id" <insert id="insertSelectiveMemberAcc" useGeneratedKeys="true" keyProperty="id" parameterType="com.member.domain.MemberAccInfo">     ins

mybatis插入操作时,返回自增主键id

mapper.xml 代码 <insert id="insert" parameterType="com.Student" > <selectKey keyProperty="id" resultType="long" order="AFTER"> select last_insert_id(); </selectKey> insert into student(id,,

MyBatis获取插入记录的自增长字段值

第一步: 在Mybatis Mapper文件中添加属性“useGeneratedKeys”和“keyProperty”,其中keyProperty是Java对象的属性名! <insert id="insert" parameterType="Spares" useGeneratedKeys="true" keyProperty="id"> insert into spares(spares_id,spares_na

Mybatis获取插入记录的自增长ID(转)

1.在Mybatis Mapper文件中添加属性“useGeneratedKeys”和“keyProperty”,其中keyProperty是Java对象的属性名,而不是表格的字段名. [html] view plain copy print? <insert id="insert" parameterType="Spares" useGeneratedKeys="true" keyProperty="id"> i

【转】mybatis 自增主键配置

mybatis自增主键配置(?) mybatis进行插入操作时,如果表的主键是自增的,针对不同的数据库相应的操作也不同.基本上经常会遇到的就是Oracle Sequece 和 MySQL 自增主键,至于其他的手动生成唯一主键的问题在这里就不讨论了,这里主要说明下在mybatis中对于自增主键的配置. 不返回自增主键值 如果考虑到插入数据的主键不作为其他表插入数据的外键使用,那么可以考虑使用这种方式. Oracle Sequence 配置 <sql id='TABLE_NAME'>TEST_US

INNODB自增主键的一些问题 vs mysql获得自增字段下一个值

今天发现 批量插入下,自增主键不连续了....... InnoDB AUTO_INCREMENT Lock Modes This section describes the behavior of AUTO_INCREMENT lock modes used to generate auto-increment values, and how each lock mode affects replication. Auto-increment lock modes are configured

innodb自增主键的一些问题

背景: 自增长是一个很常见的数据属性,在MySQL中大家都很愿意让自增长属性的字段当一个主键.特别是InnoDB,因为InnoDB的聚集索引的特性,使用自增长属性的字段当主键性能更好,这里要说明下自增主键需要注意的几个事项. 问题一:表锁 在MySQL5.1.22之前,InnoDB自增值是通过其本身的自增长计数器来获取值,该实现方式是通过表锁机制来完成的(AUTO-INC LOCKING).锁不是在每次事务完成后释放,而是在完成对自增长值插入的SQL语句后释放,要等待其释放才能进行后续操作.比如