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) 个答案