专栏首页学习笔记持续记录中...JDBC 获取插入记录的主键值(9)

JDBC 获取插入记录的主键值(9)

import java.sql.*;

public class JDBCTest03 {
    public static void testGetKeyValue() throws ClassNotFoundException, SQLException, SQLException {
        String sql = "INSERT INTO examstudent(type,id_card, exam_card, student_name,location,grade)"
                + "VALUES(?,?,?,?,?,?)";
        String driverClass = "com.mysql.jdbc.Driver";
        String jdbcUrl = "jdbc:mysql://localhost:3306/myemployees?useUnicode=true&useSSL=false";
        String user = "root";
        String password = "abcd123456";
        Class.forName(driverClass);
        Connection connection = DriverManager.getConnection(jdbcUrl,user,password);
        // 返回主键核心代码,preparedStatement()重载方法
        PreparedStatement preparedStatement = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
        preparedStatement.setInt(1,5);
        preparedStatement.setString(2,"1234567890");
        preparedStatement.setString(3,"12345");
        preparedStatement.setString(4,"ee");
        preparedStatement.setString(5,"SH");
        preparedStatement.setInt(6,10);
        preparedStatement.executeUpdate();
        // 通过getGeneratedKeys()获取包含了新恒诚的主键的ResultSet对象
        // 在ResultSet中只有1列 GENERATED_KEY,用于存放新生成的主键值
        ResultSet rs = preparedStatement.getGeneratedKeys();
        if(rs.next()){
            System.out.println(rs.getObject(1));
        }
        ResultSetMetaData rsmd = rs.getMetaData();
        for(int i = 0; i < rsmd.getColumnCount();i++){
            System.out.println(rsmd.getColumnName(i + 1));
        }
        rs.close();
        preparedStatement.close();
        connection.close();
    }

    public static void main(String[] args) throws SQLException, ClassNotFoundException {
        testGetKeyValue();
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • JDBC 处理Blob(10)

    Mysql中,Blob是一个二进制大型对象,是一个可以存储大量数据的容器,它能容纳不同大小的数据

    桑鱼
  • Java基础:四、控制执行流程

    就像有知觉的生物一样,程序必须在执行过程中控制它的世界,并做出选择。在Java中,要使用执行控制语句来做出选择。

    桑鱼
  • Java基础:五、this关键字、static含义(4)

    如果只有一个peel()方法,如何知道是被a还是b所调用的呢?因为编译器会把“所操作对象的引用”作为第一次参数传递给peel()。所以上述两个方法的调用就变成了...

    桑鱼
  • 《自然》杂志发问:科学家可以让健康人感染新冠来测试疫苗?

    新冠肺炎全球累计确诊近67万人,死亡超3万人。为了减缓新冠疫情,很多国家采取了封锁,并鼓励人们不要外出。但如何才能真正终结这次大流行呢?

    新智元
  • Linux:谁能打开多少个文件,可以精准控制!只需这行配置。

    在Linux中,可以更改打开文件的最大数量。使用ulimit命令修改这个限制值,从而控制文件资源的访问阈值。

    程序员小助手
  • 如何在Ubuntu 14.04上使用Let's Encrypt来保护Nginx

    Let's Encrypt是一个新的证书颁发机构(CA),它提供了一种获取和安装免费TLS / SSL证书的简便方法,从而在Web服务器上启用加密的HTTPS。...

    独钓寒江雪_Ly
  • Python与家国天下

    导读:Python猫是一只喵星来客,它爱地球的一切,特别爱优雅而无所不能的 Python。我是它的人类朋友豌豆花下猫,被授权润色与发表它的文章。如果你是第一次看...

    Python猫
  • 小白都能玩的明白的Nmap基础(二)

    Nmap (“Network Mapper(网络映射器)”) 是一款开放源代码的 网络探测和安全审核的工 具。它的设计目标是快速地扫描大型网络,当然用它扫描单个...

    天钧
  • 如何构建和维护多云安全策略

    企业在采用多个云计算服务提供商的云服务时,考虑云平台和每个云服务的具体情况以保持安全性至关重要。

    静一
  • 动态 | 由 AI 芯片到目标检测板,「西安交大」是如何斩获 DAC FPGA 赛道亚军?

    AI 科技评论按:2019 年 6 月 5 日,由电子自动化设计顶级会议 DAC 2019 主办的「低功耗目标检测系统设计挑战赛」于美国拉斯维加斯落下帷幕。西安...

    AI科技评论

扫码关注云+社区

领取腾讯云代金券