当前位置:Gxlcms > 数据库问题 > iterator方法和for方法 遍历数据库user表结果集ResultSet

iterator方法和for方法 遍历数据库user表结果集ResultSet

时间:2021-07-01 10:21:17 帮助过:24人阅读

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());
        }
        
        
    }
}

控制台效果如下:

技术分享图片

 

iterator方法和for方法 遍历数据库user表结果集ResultSet

标签:div   generated   .exe   username   tab   关闭   foreach   try   manager   

人气教程排行