Java: comment faire pour imprimer les lignes à partir de la base de données?
J'ai ce programme:
class DataRetrieve {
DataRetrieve() {
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/phonebook", "root", "1234");
Statement st = con.createStatement();
st.executeQuery("select * from contacts");
}
catch(Exception e) {
e.printStackTrace();
}
}
}
public class MainProgram {
public static void main(String[] args) {
DataRetrieve dr = new DataRetrieve();
//here i want to print that table rows into Console using this
System.out.println(); //How do you print here that table rows?
}
}
Quelqu'un peut-il expliquer comment faire pour imprimer cette base de données d'informations dans System.out.println
?
- Vous aurez probablement besoin de commencer avec certains d'introduction Java tutoriels. Votre
DataRetrieve
classe ne fournit pas de moyen d'obtenir toutes les données qu'il contient. Il exécute une requête dans le constructeur, mais ne pas stocker les résultats de n'importe où en dehors de la portée de ce constructeur. Ni d'autres méthodes pour accéder à ces données stockées. - Découvrez la réponse de Frans dans ce post: stackoverflow.com/questions/10903206/...
Vous devez vous connecter pour publier un commentaire.
Vous pouvez créer un
ResultSet
.Ensuite, vous pouvez effectuer une itération sur ResultSet, et obtenir les lignes.
Pour obtenir toutes les colonnes de données:
Si vous souhaitez imprimer les informations de base de données à partir de
MainProgram
appels, vous pouvez retourner leResultSet
et itérer dessus dans votre méthode principale.Dans ce cas, vous devez créer une méthode dans
MainProgram
.Et dans votre méthode principale:
Utiliser le code suivant:
Eh bien, j'ai pris les lignes retournées à partir de la base de données dans le jeu de résultat de l'instance. Vous pouvez utiliser
getInt(xxx)
,getString(xxx)
et etc pour obtenir les valeurs liées et ensuite de les imprimer.MainProgram.main
Une faute que tu as fait est ouvert la connexion mais jamais fermé il. Ce n'est pas une bonne pratique, vous devez toujours fermer pour libérer les ressources.
Dans votre premier code
st.executeQuery("select * from contacts");
sera de retour d'uneResultSet
objet de ce que vous devez faire est de simplement parcourir lesResultSet
et obtenir les lignes.