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

代码如下:

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

控制台效果如下:

最新文章

  1. 【工匠大道】 svn命令自己总结
  2. 删除部分字符使其变成回文串问题——最长公共子序列(LCS)问题
  3. iOS深入学习(Block全面分析)
  4. 使用C#向后台ACCESS数据库添加数据
  5. buildroot 添加ssh,以及使用stftp 服务
  6. Android自定义ScrollView实现一键置顶功能
  7. VS2012编译可在WinXP兼容程序
  8. Android完全退出应用程序,完美解决方案
  9. 怎样处理iOS 5与iOS 6的 low-memory
  10. Indiegogo: An International Crowdfunding Platform to Raise Money
  11. 对于Web开发来说 8 个最好的跨平台编辑器
  12. ssh的免密登陆
  13. 邮箱&amp;&amp;密码验证-原理
  14. JVM之GC算法、垃圾收集算法——标记-清除算法、复制算法、标记-整理算法、分代收集算法
  15. shell脚本if语句的多种条件参数
  16. php中双$符 及一些基础知识
  17. CentOS7下安装Redis5.0.2
  18. list源码4(参考STL源码--侯捷):transfer、splice、merge、reverse、sort
  19. 测试那些事儿—postman进阶使用与实战
  20. kafka-producer partitioner.class的使用

热门文章

  1. Unity3D中调用外接摄像头,并保存为图片文件
  2. 我叫mt2.0更新公告
  3. MyBatist庖丁解牛(五)
  4. python入门之实例-验证码
  5. freertos之任务
  6. C#连接Oracle中文乱码问题解决方法
  7. linux下php以fastcgi模式运行
  8. P1201 [USACO1.1]贪婪的送礼者Greedy Gift Givers
  9. 用vue.js实现购物车功能
  10. Java基础教程(25)--I/O