我有一个简单的问题。我是初学程序员,在学校我们需要制作一个控制台代码,在控制台中打印查询结果。我有多尝试过它并没有起作用,我得到的只是一些奇怪的文字而不是查询结果。
这是我的主要类,我还有一个名为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)
任何人都可以告诉我我做错了什么吗?
提前谢谢。
答案 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();