美文网首页
JDBC返回生成的主键

JDBC返回生成的主键

作者: TomHu_blog001 | 来源:发表于2019-08-18 08:36 被阅读0次

    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("完成");

    }

    }

    }

    相关文章

      网友评论

          本文标题:JDBC返回生成的主键

          本文链接:https://www.haomeiwen.com/subject/jkalsctx.html