Je récupère les noms de colonnes d'une base de données SQL via Java. Je sais que je peux aussi récupérer les noms de colonnes de ResultSet
. J'ai donc cette requête SQL
select column_name from information_schema.columns where table_name='suppliers'
Le problème est que je ne sais pas comment obtenir les noms de colonne de ResultSet
et mon code est
public void getAllColumnNames() throws Exception{
String sql = "SELECT column_name from information_schema.columns where table_name='suppliers'";
PreparedStatement ps = connection.prepareStatement(sql);
ResultSet rs = ps.executeQuery(sql);
// extract values from rs
}
ResultSet resultSet = statement.executeQuery("SELECT * from foo");
ResultSetMetaData rsmd = resultSet.getMetaData();
int columnsNumber = rsmd.getColumnCount();
while (resultSet.next()) {
for (int i = 1; i <= columnsNumber; i++) {
if (i > 1) System.out.print(", ");
String columnValue = resultSet.getString(i);
System.out.print(columnValue + " " + rsmd.getColumnName(i));
}
System.out.println("");
}
Référence: Impression du résultat de ResultSet
1) Au lieu de PreparedStatement
utiliser Statement
2) Après l'exécution de la requête dans ResultSet
, extrayez les valeurs à l'aide de rs.getString()
en tant que:
Statement st=cn.createStatement();
ResultSet rs=st.executeQuery(sql);
while(rs.next())
{
rs.getString(1); //or rs.getString("column name");
}
utiliser en outre comme
rs.getString(1);
rs.getInt(2);
1, 2 est le numéro de colonne de la table et de l'ensemble int ou string selon le type de données de coloumn
Regardez la documentation . Vous avez commis les erreurs suivantes. Tout d'abord, ps.executeQuery()
n'a pas de paramètre. Au lieu de cela, vous avez passé la requête SQL.
Deuxièmement, en ce qui concerne la déclaration préparée, vous devez utiliser le ?
symbole si vous souhaitez transmettre des paramètres. Et plus tard le lier en utilisant
setXXX(index, value)
Ici xxx représente le type de données.
Pour ce que vous essayez de faire, vous pouvez utiliser PreparedStatement
au lieu de Statement
. Votre code peut être modifié
String sql = "SELECT column_name from information_schema.columns where table_name='suppliers';";
Statement s = connection.createStatement();
ResultSet rs = s.executeQuery(sql);
J'espère que cela t'aides.