11. JDBC进阶 — 获得插入数据的主键值

JDBC进阶

  —— 获得插入数据的主键值

获取数据库自动生成的主键值

在第6章的JDBCUtils的update()方法基础上进行的改进

下面介绍一下Connection类的.prepareStatement(sql)方法的重载方法prepareStatement(String sql, int autoGeneratedKeys)
参数1:还是原来的sql不变
参数2:是是否返回主键值的标志位

  • Statement.RETURN_GENERATED_KEYS:返回主键的ResultSet对象
  • Statement.NO_GENERATED_KEYS:不返回主键的ResultSet对象

这个ResultSet对象里只有一个列:GENERATED_KEY:用于存放新生成的主键值

public static int update(String sql, String path, Object ...args){
    int num = 0;
    getConnection(path);
    // 如果创建连接失败,返回0行
    if(con == null){
        System.out.println("创建数据库连接失败");
        return 0;
    }
    try {
        // 通过connection的createStatement()方法获取statement链接
        // ps = con.prepareStatement(sql);
        ps = con.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
        for(int i=0;i<args.length;i++){
            ps.setObject(i+1, args[i]);
        }
        // 通过statement的executeUpdate()方法执行SQL语句
        num =  ps.executeUpdate();
        // 这里是导出该添加的数据的主键值的ResultSet对象
        ResultSet rs1 = ps.getGeneratedKeys();
        while (rs1.next()){
            System.out.println(rs1.getObject(1));
        }
    } catch (SQLException e) {
        // 从连接中获取Statement异常
        e.printStackTrace();
    } finally {
        // 关闭statement和connection连接
        close();
    }
    return num;
}

结果:
在这里插入图片描述
本章结束

回到目录


如果本文有错误或对本文有不理解的地方欢迎评论 _

如果本文有帮助到您,可以点一下右上角的赞哦,谢谢啦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值