JDBC返回生成的主键

https://www.tomhuwd.com/core-content-4320.html

思路:

通过一个重载的prepareStatement(sql,int);来设置是否返回由数据库生成的主键

然后再使用ps.getGenereatedKeys()来获得包含主键的结果集

import java.io.FileInputStream;

import java.io.OutputStream;

import java.sql.Blob;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.Statement;

public class ReturnPrimaryKey {

public static void main(String[] args) throws Exception {

write("d:/t.png");

}

public static void write(String dir)throws Exception{

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

try(Connection conn=JdbcUtil.getConnection();

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

//在此处设置是否返回由数据库生成的主键然后用ps.getGeneratedKeys()获得主键的结果集

Blob blob= conn.createBlob();

OutputStream os=blob.setBinaryStream(1);

FileInputStream fis=new FileInputStream(dir);

byte[]bs=new byte[100];

int size=-1;

while((size=fis.read(bs))!=-1) {

os.write(bs,0,size);

}

fis.close();

os.close();

ps.setBlob(1, blob);

ps.execute();

//获得生成的主键

ResultSet keys=ps.getGeneratedKeys();

keys.next();

System.out.println("生成的主键是:"+keys.getInt(1));

System.out.println("完成");

}

}

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一. Java基础部分.................................................
    wy_sure阅读 9,295评论 0 11
  • 一.介绍 JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL...
    走着别浪阅读 2,750评论 0 2
  • 回家果然比想象中无聊,没有什么动力。 不过意外发现搜狗输入法的这个皮肤音效不错,叮叮咚咚的很清脆,有古韵。
    琉璃色的猫阅读 1,418评论 0 0
  • 今天去森林公园登山,沿途不断有小惊喜出现,沿上山的小道旁,时不时出现用木板写的诗句或禅语,是让登山者边走边悟吗 ...
    邓雅丹阅读 3,146评论 0 0
  • 目录 丨 上一章 水天间 上 2016年1月2日 水天间穷际平原 箴一行人在穷际平原上往正北行进了大约半个小时,少...
    芊泽岩阅读 1,450评论 0 3

友情链接更多精彩内容