Java:如何从数据库中打印行?

Nar*_*yan 1 java mysql database

我有这个程序:

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?
    }
} 
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释如何打印这个数据库信息System.out.println

use*_*782 6

你可以创建一个ResultSet.

ResultSet rs = st.executeQuery("select * from contacts");
Run Code Online (Sandbox Code Playgroud)

然后,您可以迭代ResultSet,并获取行.

while (rs.next()) {
    System.out.println(rs.getString(1)); //gets the first column's rows.
}
Run Code Online (Sandbox Code Playgroud)

获取所有列的数据:

ResultSetMetaData rsmd = rs.getMetaData();
int columnsNumber = rsmd.getColumnCount();

while (rs.next()) {
    for(int i = 1; i < columnsNumber; i++)
        System.out.print(rs.getString(i) + " ");
    System.out.println();
}
Run Code Online (Sandbox Code Playgroud)

如果要从MainProgram调用中打印数据库信息,可以ResultSet在main方法中返回并迭代它.

在这种情况下,您应该在中创建一个方法MainProgram.

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();
            rs = st.executeQuery("select * from contacts");
        }
        catch(Exception e) {
            e.printStackTrace();
        }
    }

    public ResultSet getResultSet() {
          return rs;
    }
private ResultSet rs = null;
}
Run Code Online (Sandbox Code Playgroud)

在你的主要方法中:

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?

        ResultSet rs = dr.getResultSet();
        while (rs.next()) {
            System.out.println(rs.getString(1)); //gets the first column's rows.
        }
}
Run Code Online (Sandbox Code Playgroud)