将查询结果遍历打印
package cn; import java.sql.*; //4.ResultSet : 结果集对象 结果集会有一个游标 // 1.boolean next() : 游标向下移动一行,判断当前行是否为最后一行(是否有数据),如果是,则返回false,如果不是则返回true // 2.getXxx(参数) :获取数据 // Xxx;代表数据类型 如:getInt() 返回int类型,getString 返回字符串类型, // 参数:1.int类型:代表字段的编号,从1开始。如getInt(1):获取表的第一个字段 // 2.String类型:代表字段名称。如getString(name):获取表的name字段 // 注意: // 1.游标向下移动一行。 // 2.判断是否有数据 // 3.获取数据。用循环判断 next 是否为 true,是则输出。不是则跳出循环 // while (rs.next()) { // // 6.2获取数据 // int id = rs.getInt(1); // String name = rs.getString("name"); // // 打印结果 // System.out.println(id + "---" + name); // } public class JdbcDemo5 { public static void main(String[] args) { // 第7步把局部变量变成全局变量 Connection con = null ; Statement stat = null ; // 结果集也是一个对象,后面需要关闭它 ResultSet rs = null ; try { // 1.注册驱动 Class.forName("com.mysql.cj.jdbc.Driver") ; // 2.定义sql脚本 String sql = "select * from stuinfo " ; // 3.获取Connection Connection 在try外面定义后进行赋值 con = DriverManager.getConnection("jdbc:mysql:///test","root","newpassword") ; // 4.获取执行sql对象 Statement Statement stat 在try外面进行定义后赋值 stat = con.createStatement() ; // 5.执行sql语句 rs = stat.executeQuery(sql) ; // 影响行数 // 6.处理结果 // 判断下一行是否有数据,如果有,则一直输出 while (rs.next()) { // 6.2获取数据 int id = rs.getInt(1); String name = rs.getString("name"); // 打印结果 System.out.println(id + "---" + name); } } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); } finally { // 7.释放资源 // 避免空指针异常 stat.close() ; // rs是最后使用的要先关闭,stat 使用con对象,所以应该先释放stat对象,释放后面的对象再释放前面的 if (rs != null) { try { rs.close() ; } catch (SQLException throwables) { throwables.printStackTrace(); } } if (stat != null) { try { stat.close() ; } catch (SQLException throwables) { throwables.printStackTrace(); } } if (con != null) { try { stat.close() ; } catch (SQLException throwables) { throwables.printStackTrace(); } } } } }