使用ResultSet结果集查询数据

直接上下代码:

 1 package com.learn.jdbc.chap05;
 2
 3 import java.sql.Connection;
 4 import java.sql.PreparedStatement;
 5 import java.sql.ResultSet;
 6 import java.util.ArrayList;
 7 import java.util.List;
 8
 9 import com.learn.jdbc.model.Album;
10 import com.learn.jdbc.util.DbUtil;
11 /**
12  * 使用ResultSet结果集(数据查询)
13  * @author Administrator
14  *
15  */
16 public class Demo1 {
17
18     private static DbUtil dbUtil=new DbUtil();
19
20     private static void listAlbum() throws Exception{
21         Connection con = dbUtil.getCon();
22         String sql="select * from sp_album";
23         PreparedStatement pstmt = con.prepareStatement(sql);
24         ResultSet rs = pstmt.executeQuery(); // 返回结果集 ResultSet
25         while(rs.next()){
26             // 下面的写法 在工作中 很少用
27             int id=rs.getInt(1);
28             String name=rs.getString(2);
29             int uid=rs.getInt(3);
30             long time=rs.getLong(4);
31             System.out.println("编号:"+id+",名称:"+name+",会员id:"+uid+",添加时间:"+time);
32             System.out.println("-----------------------");
33         }
34
35     }
36
37     private static void listAlbum2() throws Exception{
38         Connection con = dbUtil.getCon();
39         String sql="select * from sp_album";
40         PreparedStatement pstmt = con.prepareStatement(sql);
41         ResultSet rs = pstmt.executeQuery(); // 返回结果集 ResultSet
42         while(rs.next()){
43             // 下面的写法 在工作中 经常这么写
44             int id=rs.getInt("id");
45             String name=rs.getString("name");
46             int uid=rs.getInt("uid");
47             long time=rs.getLong("add_time");
48             System.out.println("编号:"+id+",名称:"+name+",会员id:"+uid+",添加时间:"+time);
49             System.out.println("-----------------------");
50         }
51
52     }
53
54     private static List<Album> listAlbum3() throws Exception{
55         List<Album> albumList = new ArrayList<Album>();
56
57         Connection con = dbUtil.getCon();
58         String sql="select * from sp_album";
59         PreparedStatement pstmt = con.prepareStatement(sql);
60         ResultSet rs = pstmt.executeQuery(); // 返回结果集 ResultSet
61         while(rs.next()){
62             // 下面的写法 在工作中 经常这么写
63             int id=rs.getInt("id");
64             String name=rs.getString("name");
65             int uid=rs.getInt("uid");
66             long time=rs.getLong("add_time");
67
68             Album ab=new Album(id, name, uid, time);
69             albumList.add(ab);
70         }
71
72         return albumList;
73     }
74
75     public static void main(String[] args) throws Exception {
76         /*listAlbum();
77         System.out.println("=============================================");
78         listAlbum2();*/
79         List<Album> abInfo = listAlbum3();
80         for(Album abm:abInfo){ // 此处的abm默认输出是调用父类的toString方法,要输出自定义信息,需要重写toString方法
81             System.out.println(abm);
82             //System.out.println(abm.getName());
83         }
84     }
85 }
时间: 2024-08-01 19:41:19

使用ResultSet结果集查询数据的相关文章

使用JDBC从数据库中查询数据

* ResultSet 结果集:封装了使用JDBC 进行查询的结果 * 1. 调用Statement 对象的 executeQuery(sql) 方法可以得到结果集 * 2. ResultSet 返回的实际上就是一张数据表,有一个指针指向数据表的第一行的前面, * 可以调用next()方法检测下一行是否有效,若有效,返回true,且指针下移, * 相当于iterator 对象的 hasNext() 和 next()方法的结合体 * 3. 当指针定位到一行时,可以通过调用getXxx(index)

JDBC连接数据库方法的封装,以及查询数据方法的封装(精华)

主要内容: 一般的连接数据库测试 把连接数据库的方法封装成一个类和测试 一个简单的插入表实例 查询数据实例 封装查询的数据库的信息 封装信息后的查询数据库 一.一般的数据库连接测试 1 public class TestConnection1 { 2 public static void main(String[] args) throws Exception { 3 Class.forName("com.mysql.jdbc.Driver"); 4 String url="

查询数据过多页面反应慢引入缓存解决方案(Redis、H2)

问题:原系统查询接口不支持分页也不可能加入分页支持,导致Ajax查询数据过多,返回数据达到2W多条记录时响应已经极慢,查询功能不要求数据实时性,页面反应速度极慢.体验不好:经排查是由于数据量过大导致写回页面的时候慢,实现是直接Servlet输出流写到页面上(output.write(buffer, 0, b)): 需求变更:加快页面相应速度,页面要有分页功能,可以改变原接口 在这种情况下有两种解决方案: 1.前端js分页 2.加入第三方缓存部件(内存数据库等) 两种解决方案的缺点: 第一种方案的

Cocos2d-x数据持久化-查询数据

数据查询一般会带有查询条件,这可以使用SQL语句的where子句实现,但是在程序中需要动态绑定参数给where子句.查询数据的具体操作步骤如下所示.(1) 使用sqlite3_open函数打开数据库.(2) 使用sqlite3_prepare_v2函数预处理SQL语句.(3) 使用sqlite3_bind_text函数绑定参数.(4) 使用sqlite3_step函数执行SQL语句,遍历结果集.(5) 使用sqlite3_column_text等函数提取字段数据. (6) 使用sqlite3_f

使用多结果集读取数据减少服务器往返,提高性能

先来谈一下什么是多结果集?以及为什么需要它? 假设我们的一个窗体上有多个控件,需要绑定多个数据源.那么传统情况下,我们可以用不同的命令去读取不同的数据,然后分别绑定.这样做本来无可厚非,但如果从性能上考虑的话,就有改进的必要了. 因为每个单独的命令执行都是需要发生一次服务器的往返的,所以如果能够把数据一次性读取到,统一发给用户程序,再在客户端做单独的绑定,这样的设计可以减少服务器往返次数,提高性能. 以下是一些代码和比较 使用DataReader执行单结果集查询:每次返回一个结果集.(这是传统的

HDFS跨集群数据合并方案之ViewFileSystem

前言 在很多时候,我们会碰到数据融合的需求,比如说原先有A集群,B集群,后来管理员认为有2套集群,数据访问不方便,于是设法将A,B集群融合为一个更大的集群,将他们的数据都放在同一套集群上.一种办法就是用Hadoop自带的DistCp工具,将数据进行跨集群的拷贝.当然这会带来很多的问题,如果数据量非常庞大的话.本文给大家介绍另外一种解决方案,ViewFileSystem,姑且可以叫做视图文件系统.大意就是让不同集群间维持视图逻辑上的唯一性,不同集群间还是各管各的. 传统数据合并方案 为了形成对比,

MongoDB复制集及数据分片详解

前言 MongoDB是一个由C++语言编写的基于分布式文件存储的数据库,是当前NoSQL数据库中比较热门的一种,旨在为Web应用提供可扩展的高性能数据存储解决方案.本文介绍MongoDB复制集及数据分片. MongoDB 简介 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.支持的数据结构非常松散,因此可以存储比较复杂的数据类型.最大的特点是其支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询

备份和还原MongoDB分片集群数据

1.使用mongodump备份小量分片集群数据 如果一个分片集群的数据集比较小,可以直接使用mongodump连接到mongos实例进行数据备份.默认情况下,mongodump到非primary的节点进行数据查询. 如: mongodump --host 192.168.100.200 --port 28018 -d taiwan_game1 -o . mongorestore --host 192.168.100.200 --port 28018 taiwan_game1 需要注意的是如果使用

【源】从零自学Hadoop(16):Hive数据导入导出,集群数据迁移上

阅读目录 序 导入文件到Hive 将其他表的查询结果导入表 动态分区插入 将SQL语句的值插入到表中 模拟数据文件下载 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 上一篇,我们介绍了Hive的表操作做了简单的描述和实践.在实际使用中,可能会存在数据的导入导出,虽然可以使用sqoop等工具进行关系型数据导入导出操作,但有的时候只需要很简便的方式进行导入导出即可   下面我们开始