iterator方法和for方法 遍历数据库user表结果集ResultSet
首先,把连接数据库的语句做成工具类,因为会一直用到这几句
代码如下:
package com.swift.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class DBUtil { public static Connection getConn() { Connection conn=null; try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { String url="jdbc:mysql://localhost:3306/sw_database"; String user="root"; String password="root"; conn=DriverManager.getConnection(url, user, password); } catch (SQLException e) { e.printStackTrace(); } return conn; } public static void closeAll(Connection conn,PreparedStatement ps,ResultSet rs) { if(conn!=null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } if(ps!=null) { try { ps.close(); } catch (SQLException e) { e.printStackTrace(); } } if(rs!=null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
工具里包含两个静态方法都可以直接使用,一个是获得连接getConn得到连接类Connection的对象,后面连接数据库直接DBUtil.getConn()就可以了
还有一个是用完数据库要关闭与数据库的连接,使用DBUtil.closeAll();就可以了
接着,连接数据库sw_database中的表sw_user,把其中所有用户显示在控制台,使用的sql语句为select * from sw_user;
使用四种循环方法,在控制台上输出sw_user表中的所有记录
代码如下:
package com.swift.jdbc; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Iterator; import java.util.LinkedList; public class QueryAllInUser { public static void main(String[] args) { Connection conn=DBUtil.getConn(); PreparedStatement ps=null; ResultSet rs=null; LinkedList<User> list = new LinkedList<User>(); try { ps=conn.prepareStatement("select * from sw_user"); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { rs=ps.executeQuery(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { while(rs.next()) { int id=rs.getInt("id"); String username=rs.getString("username"); String password=rs.getString("password"); User user=new User(id,username,password); list.add(user); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } //方法一,使用for循环 for(int i=0;i<list.size();i++) { System.out.println(list.get(i)); } System.out.println(); //方法二,使用增强的for,相当于foreach for(User user:list) { System.out.println(user.toString()); } System.out.println(); //方法三,使用while+iterator Iterator<User> it=list.iterator(); while(it.hasNext()) { System.out.println(it.next()); } System.out.println(); //方法四,使用for+iterator for(Iterator<User> it1=list.iterator();it1.hasNext();) { System.out.println(it1.next()); } } }
控制台效果如下:
相关推荐
阳历六月 2020-06-27
tlsmile 2020-06-05
dongxurr 2020-01-29
KaiZhaoKZ 2019-12-22
hithyc 2019-12-11
zhangbeizhen 2019-11-03
MICKEYSTUDY 2019-08-16
cnzou 2011-09-16
ApachePHPMySQL 2011-08-16
梵天的读书笔记 2010-12-23
步行者 2010-12-02
西瓜皮儿的皮儿 2010-11-25
狗蛋的窝 2019-06-26
Balalala 2013-10-08
一个0后IT之路 2010-06-09
Nishinoshou 2019-06-21
mikean 2009-04-07