将信息从数据库打印到控制台程序

时间:2013-12-18 19:56:00

标签: java mysql resultset

我有一个简单的问题。我是初学程序员,在学校我们需要制作一个控制台代码,在控制台中打印查询结果。我有多尝试过它并没有起作用,我得到的只是一些奇怪的文字而不是查询结果。

这是我的主要类,我还有一个名为SimpleDataSourceV2的第二个类(此类包含用于连接mySQL数据库的代码。

  public static void main(String[] args) {
    try {
    Connection conn = SimpleDataSourceV2.getConnection();

      doQuery(conn);

      conn.close();

    }
    catch ( Exception e){
        System.out.print(e);
    }
}

public static void doQuery(Connection conn) {
    try {

        Statement stat = conn.createStatement();

        ResultSet result = stat.executeQuery("SELECT * FROM employee");

        while (result.next()) {
            System.out.println(result);
        }

        result.close();

        stat.close();

    }
    catch ( SQLException e){
        System.out.print(e);
    }
}

这是我使用的两种方法。员工表包含不同的信息,如姓名,地址,城市等。

以下是我的输出:

run:

com.mysql.jdbc.JDBC4ResultSet@2bd1c812
com.mysql.jdbc.JDBC4ResultSet@2bd1c812
com.mysql.jdbc.JDBC4ResultSet@2bd1c812
com.mysql.jdbc.JDBC4ResultSet@2bd1c812
com.mysql.jdbc.JDBC4ResultSet@2bd1c812
com.mysql.jdbc.JDBC4ResultSet@2bd1c812
com.mysql.jdbc.JDBC4ResultSet@2bd1c812
com.mysql.jdbc.JDBC4ResultSet@2bd1c812
com.mysql.jdbc.JDBC4ResultSet@2bd1c812
com.mysql.jdbc.JDBC4ResultSet@2bd1c812

BUILD SUCCESSFUL (total time: 1 second)

任何人都可以告诉我我做错了什么吗?

提前谢谢。

1 个答案:

答案 0 :(得分:0)

如果您直接尝试打印ResultSet,您将获得仅此类输出。如果知道列数,则写一个循环并打印列值

while (result.next()) {
    for (int columnIndex = 1; columnIndex <= numberOfColumns; columnIndex ++){
        System.out.println(columnIndex + "<====>" + result.getString(columnIndex));
    }
}

如果您不知道列数,可以使用ResultSetMetaData这样的

来获取
 java.sql.ResultSetMetaData rsmd = result.getMetaData();
 int numberOfColumns = rsmd.getColumnCount();