这是最近在实现perfect-ssm中的一个功能时碰到的一个小问题,觉得需要记录一下,向MySQL数据库中插入一条记录后,需要获取此条记录的id值,以生成对应的key值存入到redis中,id为自增int...主键。...add_name) values(#{articleTitle},#{articleCreateDate},#{articleContent},#{addName}) 这种方式只是返回一个影响行数值...,并不能满足此次需求,于是做了如下修改: <insert id="insertArticle" useGeneratedKeys="true" keyProperty="id" parameterType...mysql中表的记录如下: ? 结语 首发于我的个人博客,新的项目演示地址:perfect-ssm,登录账号:admin,密码:123456 ?
最近开发全栈项目时,前端有个数据行可以被随便修改,所以必须给他一个标识记录该数据行,即向MySQL数据库中插入一条记录后,需要获取此条记录的主键id值返回给前端。...,name) values(#{articleTitle},#{articleCreateDate},#{articleContent},#{addName}) insert> 这种方式只是返回一个影响行数值...,并不能满足此次需求,于是做了如下修改: <insert id="insertArticle" useGeneratedKeys="true" keyProperty="id" parameterType...(比如MySQL的自动递增主键字段),默认值:false。...这里我们要开启就需要指定为Article对象的id。
有时候使用mybatis插入数据后,需要用到记录在数据库中的自增id,可以利用keyProperty来返回,赋值给实体类中的指定字段。...单条记录插入并返回 First, if your database supports auto-generated key fields (e.g....MySQL and SQL Server), then you can simply set useGeneratedKeys="true" and set the keyProperty to the...id为实体类中的字段名称 多条记录插入并返回 If your database also supports multi-row insert, you can pass a list or an array...,有可能会出现id没有返回的情况。
1.场景介绍: 开发过程中我们经常性的会用到许多的中间表,用于数据之间的对应和关联.这个时候我们关联最多的就是ID,我们在一张表中插入数据后级联增加到关联表中.我们熟知的mybatis在插入数据后返回的是插入成功的条数...2.插入数据返回自增主键ID方法(一) 在映射器中配置获取记录主键值 xml映射: 在xml中定义useGeneratedKeys为true,返回主键id的值,keyProperty和keyColumn...-- 插入数据:返回记录主键id值 --> ...(name,age) values (#{name},#{age})") void insert(Student stu); 获取新添加记录主键字段值 需要注意的是,在MyBatis中添加操作返回的是记录数并非记录主键...System.out.println("id = " + student.getId()); // 执行添加操作之后通过Java对象获取主键属性值 添加批量记录时返回主键ID 如果希望执行批量添加并返回各记录主键字段值
resultType : 正常的返回值。...也就是 PRSP_CRM_ENTERP_ID.nextval 的返回值类型 order : 这个oracle 必须写BEFORE ,mysql 是after 。...不要采坑 mysql 中 如下: SELECT LAST_INSERT_ID() AS ID... INSERT INTO S_T_LOGS ( ID, USER_ID, USER_NAME,
有三个比较类似的功能:他们分别是:SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY,它们都返回插入到 IDENTITY 列中的值。...@@IDENTITY 返回插入到当前会话中任何作用域内的最后一个 IDENTITY 列值,该值是插入 T2 中的值。...SCOPE_IDENTITY() 返回插入 T1 中的 IDENTITY 值,该值是发生在相同作用域中的最后一个 INSERT。...如果在作用域中发生插入语句到标识列之前唤醒调用 SCOPE_IDENTITY() 函数,则该函数将返回 NULL 值。...SELECT IDENT_INCR(‘TableName’)–返回指定表的标示字段增量值 SELECT IDENT_SEED(‘TableName’)–返回指定表的标示字段种子值 返回最后插入记录的自动编号
比如添加一个用户,同时返回插入用户后得到的用户id: /** * 添加用户信息 * @param user * @throws Exception */...id } 这里总结一下mybatis插入数据时返回主键的4种情况:mysql环境下主键自增、mysql环境下主键为uuid、mysql环境下主键自增、mysql环境下主键为uuid。 ...数据库为mysql ---- 主键为自增时(主键为数值类型且自增) 利用mysql的LAST_INSERT_ID()方法获取插入记录的主键,select LAST_INSERT_ID()可以在插入数据后...,查询并返回刚插入数据的主键(但是单独执行这条语句只会返回0)。...主键为UUID时(主键必须为字符类型) 使用mysql的方法UUID()方法获取随机的UUID作为主键,select UUID()可以在插入数据前,生成随机的UUID并通过keyProperty赋值给将要插入记录的主键
Python 中貌似并没有直接返回插入数据 id 的操作(反正我是没找到),但是我们可以变通一下,找到最新插入的数据 #!...*- import pymysql db = pymysql.connect(**db_conf) cursor = db.cursor() cursor.execute(sql) # 最后插入行的主键...id print(cursor.lastrowid) # 最新插入行的主键id print(conn.insert_id()) conn.commit() 使用 cursor.lastrowid...中并没有所谓的真正多线程,建议使用多进程 补充拓展:mysql中插入一条数据后得到插入后的主键id值 ** 当我们涉及多表进行插入操作是,常常需要在程序中等到刚刚插入数据的主键Id, 便与进行多表关联...="id" SELECT LAST_INSERT_ID() AS id </selectKey 以上这篇Python3 操作 MySQL 插入一条数据并返回主键 id的实例就是小编分享给大家的全部内容了
往数据库插入数据后,返回数据主键信息。有两种方法。 一种:使用insert标签中的useGeneratedKeys属性和keyProperty属性组合使用获取主键信息。...-- 插入用户useGeneratedKeys="true"表示返回生成的主键keyProperty 表示把返回的key注入到返回值的哪个属性中keyProperty="id" 表示把返回的id主键值注入到返回对象的...id属性中 -->12345678910标签的使用 selectKey 通过前置或后置操作,返回数据的主键值...插入记录并返回主键主要是在标签中添加一个的作用主要就是为了返回插入记录后,自动生成的主键信息 order 表示执行的顺序。 AFTER 表示在插入之后执行。 BEFORE 在插入之前执行。
使用mybatis时,insert方法如何返回主键?...selectKey resultType="java.lang.String" order="AFTER" keyProperty="user.id"> SELECT LAST_INSERT_ID...( #{user.name},#{user.age},#{user.address}) 下面这个是关键:order的值是after,表示先执行insert语句,然后再选择最后一个主键...,返回到实体类中。 ...的get set方法,添加方法执行完后id会被塞回到user对象中。
往数据库插入数据后,返回数据主键信息。有两种方法。 一种:使用insert标签中的useGeneratedKeys属性和keyProperty属性组合使用获取主键信息。...-- 插入用户 useGeneratedKeys="true" 表示返回生成的主键 keyProperty 表示把返回的key注入到返回值的哪个属性中 keyProperty...="id" 表示把返回的id主键值注入到返回对象的id属性中 --> 的作用主要就是为了返回插入记录后,自动生成的主键信息 order 表示执行的顺序。...-- selectKey标签主要用于插入数据后,获取生成的主键。 order 表示执行的顺序,AFTER表示在插入之后执行。
public int addClifford(Clifford clifford) { String sql = "insert into t_user...
加上这句: 例如: ?
/usr/bin/python # import MySQL module import MySQLdb # get user input name = raw_input("Please...of last inserted record print "ID of last record is ", int(cursor.lastrowid) #最后插入行的主键ID print "...ID of inserted record is ", int(conn.insert_id()) #最新插入行的主键ID,conn.insert_id()一定要在conn.commit()之前,否则会返回...0 conn.commit() cursor.lastrowid跟conn.insert_id()的结果一般情况下是一样的,最后一条记录肯定就是刚刚插入的记录。...但如果是并发插入就不一样了,多线程的时候
1.useGeneratedKeys 设置主键自增 2.使用selectKey 查询主键 我们知道很多时候我们有一个需求,我们需要把插入数据后的id返回来,以便我们下一次操作。..."设置主键的字段 3.parameterType="Student"设置传入的类型 4.注意:虽然有返回类型,但是我们不需要手动设置返回的类型,这个是由框架帮我们实现的,所以对应的接口方法也是没有返回值的...-- 指定结果类型resultType,keyProperty是属性,自动返回到属性id中,order是次序,after是指获取id是在于插入后 --> <selectKey resultType...其实,我们的接口中可以有返回值,但是这个返回值不是id,而是表示插入后影响的行数,此时sql中仍和上面一样,不需要写返回值。
问题:在Django中新插入一条数据之后,后面还需返回其自增的主键(ID)的值,从而完成后面的操作 修改前: sign_id = models.IntegerField(primary_key=True...) 解决: 将IntegerField 换成 AutoField 修改后: sign_id = models.AutoField(primary_key=True) 用法: 例如对象名为Book book...= Book(name='C语言', price=25.5) book.save() print('新书插入后返回的ID: %d', book.id) 结果 新书插入后返回的ID: 1
添加记录后获取主键ID,这是一个很常见的需求,特别是在一次前端调用中需要插入多个表的场景。...添加单一记录时返回主键ID 添加一条记录时返回主键值,在xml映射器和接口映射器中都可以实现。...-- 插入数据:返回记录主键id值 --> <insert id="insertOneTest" parameterType="org.chench.test.mybatis.model.Test...需要注意的是,在MyBatis中添加操作返回的是记录数并非记录主键id。...跟踪时序图执行步骤可以看到,MyBatis最终是通过MySQL驱动程序获取到了新添加的记录主键值。
ClassNotFoundException, SQLException, SQLException { String sql = "INSERT INTO examstudent(type,id_card...; String driverClass = "com.mysql.jdbc.Driver"; String jdbcUrl = "jdbc:mysql://localhost...driverClass); Connection connection = DriverManager.getConnection(jdbcUrl,user,password); // 返回主键核心代码...preparedStatement.setInt(6,10); preparedStatement.executeUpdate(); // 通过getGeneratedKeys()获取包含了新恒诚的主键的...ResultSet对象 // 在ResultSet中只有1列 GENERATED_KEY,用于存放新生成的主键值 ResultSet rs = preparedStatement.getGeneratedKeys
首先你要确定几点 1: 你数据表的ID 是不是 设置了自增?如果没有,那么一切都是徒劳 2: 必须的几个属性你添加了么?...useGeneratedKeys="true"(默认是false) keyProperty="id" 3: keyProperty 这个设置的是 你传入对象的属性名,不是你数据表的字段 如果以上情况都满足...,那么你很有可能犯了一个和我一样的错误 网上大部分教程在写 insert对象并返回自增主键的 demo 的时候,都是直接传入对象,而没有用@Param注解 其实他们的区别在这里 keyProperty...="id" 如果你不用 @Param注解 ,那么你在 #{xxx}里写的是 对象的属性 如果你使用 @Param注解,那么相当于你给参数对象 命名了,那么你在#{xxx}里写的就是 命名参数.属性 但是你忘了
MySQL和SQLServer执行auto-generated key field,因此当数据库设置好自增长主键后,可通过JDBC的getGeneratedKeys方法获取。...等,表示数据库厂家,元素内部可通过``来为特定数据库指定不同的sql语句 三、一般的INSERT操作——返回值为插入的记录数目 ...学生实例 * @return 成功操作的记录数目 */ int add(EStudent student); 至于mapper.xml则分为两种情况了,一种是数据库(如MySQL,SQLServer... 手段②: // 下面是SQLServer获取最近一次插入记录的主键值的方式 <...接口返回值依然是成功插入的记录数,但不同的是主键值已经赋值到领域模型实体的id中了。
领取专属 10元无门槛券
手把手带您无忧上云