有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何通过JDBC(mariaDB)检索所选行的主键值

我在使用JDBC获取所选记录的主键值时遇到问题。 我有一个HashMap,表名作为键,主键名作为值,我正在遍历它,以便找到用户选择的表名并获得主键名。到目前为止,一切正常,但当我尝试获取主键值时,它总是返回0

我使用的服务器运行在Mariadb2.4.1上,我使用的是Java1.8。下面是负责匹配用户输入和分配主键名称的for循环。在try-catch语句中,我尝试获取主键值,但它始终返回0。主键在数据库中设置为自动递增,并且值在数据库中正常更新

for (Map.Entry hashMap : getTablesWithPrimaryKeys().entrySet()) {
    if (getTableName().compareTo(hashMap.getKey().toString()) == 0) {
        setPrimaryKey((String)hashMap.getValue());
        System.out.println(getPrimaryKey());

        try {
            PreparedStatement statement = connection.prepareStatement("SELECT * FROM " + tableName, Statement.RETURN_GENERATED_KEYS);
            statement.executeQuery();
            ResultSet resultSet = statement.getGeneratedKeys();

            if (resultSet.next()) {
                setPrimaryKeyValue(resultSet.getLong(1));
                System.out.println(getPrimaryKeyValue());
            }

            connection.close();
        } catch (SQLException exception) {
            exception.printStackTrace();
        }
    }
}

我不会抛出异常,所以这里肯定缺少一些东西。需要帮忙吗


共 (0) 个答案