PreparedStatement 获取自动生成键

 PreparedStatement 获取自动生成键

使用可以获取自动生成键方法 Statement.RETURN_GENERATED_KEYS表示返回生成键

PreparedStatement pstmt = conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);

//获取生成键的结果集

ResultSet rls = pstmt.getGeneratedKeys();

getGeneratedKeys()方法继承Statement的。

Connection conn = DB.getConnection();

//获取Connection自动提交的boolean值

boolean autoCom = conn.getAutoCommit();

//将自动提交设为false

conn.setAutoCommit(false);

String title = request.getParameter("title");

int rootid = -1;

String sql = "insert into article                                                 values(null,?,?,?,?,now(),?)";

//使用可以获取自动生成键方法                                 Statement.RETURN_GENERATED_KEYS表示返回生成键

PreparedStatement pstmt = conn.prepareStatement(sql,

Statement.RETURN_GENERATED_KEYS);

pstmt.setInt(1, 0);

pstmt.setInt(2, rootid);

pstmt.setString(3, title);

pstmt.setString(4, request.getParameter("cont"));

pstmt.setInt(5, 0);

pstmt.executeUpdate();

//获取生成键的结果集

ResultSet rls = pstmt.getGeneratedKeys();

rls.next();

//根据位置得到第一个自动生成键的值

rootid = rls.getInt(1);

String strsql = "update article set rootid=" + rootid

+ " where id=" + rootid;

DB.updateDB(conn,strsql);

conn.commit();

conn.setAutoCommit(autoCom);

DB.close(pstmt);

DB.close(conn);

PreparedStatement 获取自动生成键

时间: 2024-10-11 09:09:34

PreparedStatement 获取自动生成键的相关文章

获取自动生成的主键

步骤:        1)设置需要返回生成的主键,[通过preparedStatement的第二个参数]            PreparedStatement prepareStatement(String sql, int autoGeneratedKeys);//创建一个默认 PreparedStatement 对象,该对象能获取自动生成的键            参数:                autoGeneratedKeys - 指示是否应该返回自动生成的键的标志,     

DAO以及获取自动生成主键值

package com.alibaba.sql; import java.lang.reflect.InvocationTargetException; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.util.A

JDBC 获取自动生成的主键

为什么需要获取自动生成的主键 例如: 原文地址:https://www.cnblogs.com/wbyixx/p/12129054.html

nodejs+mysql 插入一条记录时获取自动生成的id

最近在写学生申报项目的后端接口时发现需要获取数据库自动生成的主键,因为要先将项目信息插入到project表,得到生成的项目ID,再将项目ID和指导老师ID插入到project_member表 一开始想在插入项目之后,用SELECT LAST_INSERT_ID() 获取生成的ID,后来发现,在插入操作完成后的返回结果里就带有自动生成的ID.可用rows.insertId获取 代码: //利用事务对project表和project_member表进行插入 conn.beginTransaction

框架-页面获取自动生成编号

页面获取自动生成编号方法        List<DataParam> parpams = new List<DataParam>();        parpams.Add(new DataParam("Code", "KT"));        parpams.Add(new DataParam("Count", "1"));        DbService.Instance().ExecuteF

JDBC学习笔记(6)——获取自动生成的主键值&amp;处理Blob&amp;数据库事务处理

获取数据库自动生成的主键 [孤立的技术是没有价值的],我们这里只是为了了解具体的实现步骤:我们在插入数据的时候,经常会需要获取我们插入的这一行数据对应的主键值. 具体的代码实现: 1 /** 2 * 获取数据库自动生成的主键 3 */ 4 @Test 5 public void testGetKeyValues(){ 6 Connection connection=null; 7 PreparedStatement preparedStatement=null; 8 ResultSet rs=n

mysql获取自动生成的主键报错:Generated keys not requested. You need to specify Statement.RETURN_GENERATED_KEYS to Statement.execu

今天项目中需要获取刚插入的自动增长 的主键值: pstmt=conn.prepareStatement(sql); ... rs=pstmt.getGeneratedKeys(); 谁知道报错:Generated keys not requested. You need to specify Statement.RETURN_GENERATED_KEYS to Statement.execu 上网查了之后才知道原来是5.1.5的包,替换成5.1.17之后,如下生成主键的代码都会报错: Gener

spring mvc 添加数据库数据同时获取刚刚生成的数据ID

mapper.xml文件 <!-- 添加信息 --> <insert id="insert" parameterType="实体类" useGeneratedKeys="true" keyProperty="id"> <!-- 添加送达大信息的同时获取自动生成的ID的值 --> <selectKey resultType="int" keyProperty=&quo

爬虫 自动生成请求头教程

前情提要: 请求头是伪装操作者的一种方式.由于请求头的内容很多; 找了到了一个很厉害的自动生成请求头的方式 这个网站 https://curl.trillworks.com/ 自动获取,自动生成 真香 原文地址:https://www.cnblogs.com/baili-luoyun/p/10428617.html