ZZ

让菜鸟慢慢飞一下

JDBC( 八) 获取插入记录的主键。

在MYSQL中,主键往往是这种自动生成的且是自增的,可以通过jdbc来获取刚刚插入的一条记录的主键,具体做法就是在创建Statement或prepareSatement对象的时候,加上参数 RETURN_GENERATED_KEYS ,使得它能够返回获取插入的主键值。
这里写图片描述

测试:
数据库包含字段user_id,user_name,user_password,user_birth。

public class Test {
    @org.junit.Test
    public void testGetReturnGenerateKey1() {
        // 使用静态SQL来获取插入记录自动生成的键
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;
        try {
            connection = JDBCTools.getConnection();
            String sql = "INSERT INTO user (user_name,user_password,user_birth) VALUES ('BBBBB','BB111','"
                    + new Date(new java.util.Date().getTime()) + "')";
            // 添加RETURN_GENERATE_KEYS参数,让prepareStatement取得自动生成的键
            preparedStatement = connection.prepareStatement(sql, java.sql.Statement.RETURN_GENERATED_KEYS);
            preparedStatement.executeUpdate();
            resultSet = preparedStatement.getGeneratedKeys();
            while (resultSet.next()) {
                System.out.println(resultSet.getObject(1));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    @org.junit.Test
    public void testGetReturnGenerateKey() {
        // 使用预编译SQL来获取插入记录自动生成的键
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        try {
            connection = JDBCTools.getConnection();
            String sql = "INSERT INTO user (user_name,user_password,user_birth) VALUES (?,?,?)";
            // 添加RETURN_GENERATE_KEYS参数,让prepareStatement取得自动生成的键
            preparedStatement = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
            preparedStatement.setString(1, "AAAAA");
            preparedStatement.setString(2, "AA111");
            preparedStatement.setDate(3, new Date(new java.util.Date().getTime()));
            preparedStatement.executeUpdate();
            ResultSet resultSet = preparedStatement.getGeneratedKeys();
            while (resultSet.next()) {
                System.out.println(resultSet.getObject(1));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

这里写图片描述

这里写图片描述

数据库:
这里写图片描述

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_25201665/article/details/52385453
文章标签: jdbc 数据库
个人分类: |---JDBC
博主设置当前文章不允许评论。

没有更多推荐了,返回首页

不良信息举报

JDBC( 八) 获取插入记录的主键。

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭