zoukankan      html  css  js  c++  java
  • 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());
            }
            
            
        }
    }

    控制台效果如下:

  • 相关阅读:
    信息安全系统设计基础 第12周学习笔记
    信息安全系统设计基础 第11周学习笔记
    信息安全系统设计基础 第10周学习笔记
    logstash使用
    remi
    redis 自启动
    求相对路径的函数
    java json
    一个php的爬虫,将笔趣阁的书可以都下载下来。
    php写插件
  • 原文地址:https://www.cnblogs.com/qingyundian/p/8025237.html
Copyright © 2011-2022 走看看