public static void main(String[] args) {
Connection conn = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/demo";
String user = "root";
String password = "root";
conn = DriverManager.getConnection(url,user,password);
rs = conn.createStatement().executeQuery("select * from emp");
//获得列数
int len = rs.getMetaData().getColumnCount();
System.out.println(len);
while(rs.next()){//遍历行
//遍历列
for(int i=0; i<len; i++){
System.out.print(rs.getString(i));
if(i<len){
System.out.print(", ");
}
}
System.out.println();//换行
}
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}finally{
try {
if(rs!=null) rs.close();
if(conn!=null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
由于rs.next()遍历查询结果时,下标是从“1”开始,而这里循环打印是从“0”开始,导致出错
修改方法: