首先,把连接数据库的语句做成工具类,因为会一直用到这几句

代码如下:

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

控制台效果如下:

iterator方法和for方法 遍历数据库user表结果集ResultSet的更多相关文章

  1. sql排序 去除默认升降序排序case方法////遍历数据库所有表及统计表数据总数

    case排序法: end 还有EXEC法 可以网上查 SQLServer遍历数据库所有表及统计表数据总数: DECLARE @TableName varchar(); CREATE TABLE #Ge ...

  2. File类创建删除功能的方法和File类遍历(文件夹)目录功能

    File类创建删除功能的方法 -public boolean createNewFile():当且仅当具有该名称的文件尚不存在时,创建一个新的空文件 -public boolean delete(): ...

  3. Junit 注解 类加载器 .动态代理 jdbc 连接池 DButils 事务 Arraylist Linklist hashset 异常 哈希表的数据结构,存储过程 Map Object String Stringbufere File类 文件过滤器_原理分析 flush方法和close方法 序列号冲突问题

    Junit 注解 3).其它注意事项: 1).@Test运行的方法,不能有形参: 2).@Test运行的方法,不能有返回值: 3).@Test运行的方法,不能是静态方法: 4).在一个类中,可以同时定 ...

  4. java 集合 HashSet 实现随机双色球 HashSet addAll() 实现去重后合并 HashSet对象去重 复写 HashCode()方法和equals方法 ArrayList去重

    package com.swift.lianxi; import java.util.HashSet; import java.util.Random; /*训练知识点:HashSet 训练描述 双色 ...

  5. Hibernate中evict方法和clear方法说明

    Hibernate中evict方法和clear方法说明 先创建一个对象,然后调用session.save方法,然后调用evict方法把该对象清除出缓存,最后提交事务.结果报错: Exception i ...

  6. 序列化和持久化 merge方法和saveOrUpdate方法

    merge方法和saveOrUpdate方法的区别 merge方法是把我们提供的对象转变为托管状态的对象:而saveOrUpdate则是把我们提供的对象变成一个持久化对象:说的通俗一点就是:saveO ...

  7. JAVA反射中的getFields()方法和getDeclaredFields ()方法的区别

    JAVA反射中的getFields()方法和getDeclaredFields ()方法的区别   关于获取类的字段有两种方式:getFields()和getDeclaredFields().我们先来 ...

  8. Android中的Sqlite中的onCreate方法和onUpgrade方法的执行时机

    1.今天在做数据库升级的时候,遇到一个问题,就是onCreate方法和onUpgrade方法的执行时机的问题,这个当时在操作的时候,没有弄清楚,很是迷糊,后来看了相关的博客由于转发受限所以copy了一 ...

  9. Hibernate中Session.get()方法和load()方法的详细比较

    一.get方法和load方法的简易理解  (1)get()方法直接返回实体类,如果查不到数据则返回null.load()会返回一个实体代理对象(当前这个对象可以自动转化为实体对象),但当代理对象被调用 ...

随机推荐

  1. 如何使Label有修改功能

    如何使Label有修改功能 之前制作一个项目时需要这样一个功能: 双击Label, 随后Label变为TextBox,用户修改后回车,TextBox变回Label 之前使用WPF做了一个,代码如下: ...

  2. css文本之蛇

    文本之蛇 css把文本当做一行来处理,把他们放在一个看不见的盒子里面.盒子遇到容器的外边界会折行.所有的文本属性都应用于这个盒子,而不是包含文本的容器. 最有用的8个文本属性 文本缩进(text-in ...

  3. sublime text 插件的删除方法

    1.ctr+shift+P,输入Package Control: Remove Package 2.回车, 3.出现一个弹出框,输入你要删除的package 4.回车,OK!!!

  4. nutzboot dubbo zookeeper简单使用

    提供方和消费方properties 配置基本差不多 nutz.application.name这个值不一样 提供方配置自动端口就行server.port=0 消费方一般需要对外提供web服务配置ip和 ...

  5. java中数据的存放位置

    引用自java编程思想四----2.2.1 程序运行时,我们最好对数据保存到什么地方做到心中有数.特别要注意的是内存的分配.有六个地方都可以保存数据:(1) 寄存器.这是最快的保存区域,因为它位于和其 ...

  6. 1-zookeeper基本原理和使用

    1 分布式应用 1.1 分布式系统原理 在一个网络中,每台服务器上各跑一个应用,然后彼此连接起来就组成一套系统.比如提供完成的游戏服务,需要有认证应用,道具应用,积分应用,游戏主应用等,应用并非跑在一 ...

  7. ASP.NET经典的、封装好的ADO.NET类包

    using System; using System.Collections; using System.Collections.Specialized; using System.Runtime.R ...

  8. foreach循环与迭代器循环 删除插入元素的区别

     (1)仅对其遍历而不修改容器大小时,只使用foreach循环 (2)需要边遍历边修改容器大小时(插入删除元素),只使用迭代器循环 import java.util.HashMap;import ja ...

  9. TDH-search常用命令

    一.指令部分:1.search管理界面地址: http://172.20.230.110:9200/_plugin/head/ 2.集群状态查看命令: curl -XGET 'localhost:92 ...

  10. UEditor的KityFormula在IIS中部署,显示不了的解决方案

    在此,首先感谢我的同事,找到了问题所在. 因Web项目中需要有输入公式的功能(高等数学中需要),普通公式插件无法满足,所以找了KityFormula这款插件. 看了下里面的公式,在数学方面确实比较全面 ...