查询数据库里的数据

原创 2012年03月23日 09:55:01

Statement对象的executeQuery()方法一般用于执行一个select语句,它只返回一个结果集,要想把查询结果最后显示给用户,必须对ResultSet对象进行处理。ResultSet对象包括一个由查询语句返回的一个表,这个表中包含所有的查询结果。对ResultSet对象的处理必须逐行进行。ResultSet对象维持一个指向当前行的指针(类似于Iterator的用法)。最初,这个指针指向第一行之前。ResultSet的next()方法使这个指针移向下一行。因此,第一次使用next()方法将指针指向结果集的第一行,这是可以对第一行的数据进行处理。处理完毕后,使用next()方法,将指针移向下一行,继续处理第二行数据。next()方法的返回值是一个boolean值,若为true,则说明指针成功地移向下一行,可以对该行进行处理。若返回值是false,则说明没有下一行,即结果集已经处理完毕。按从左至右的顺序对各列进行处理可以获得较高的执行效率。ResultSet接口的getXXX()方法可以从某列中获得结果,XXX表示JDBC的数据类型。

请看下例:

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;

public class ResultSetTest {
	public static void main(String[] args) {
		Connection con = null;
		try {
			con = DBCon
					.getConnectionFromPooledDataSource("jdbcPool/mydatasource");
			Statement st = con.createStatement();
			String query = "select id,name from student";

			// 获得一个结果集
			ResultSet rs = st.executeQuery(query);
			// 获得结果集的元数据(表及相关的信息)
			ResultSetMetaData rsmt = rs.getMetaData();
			// 得到结果集有几列
			int num = rsmt.getColumnCount();
			String[] columns = new String[num];
			// 列的序号是从1开始的
			for (int i = 0; i < num; i++)
				columns[i] = rsmt.getColumnName(i + 1);
			// 先输出列名
			for (int i = 0; i < num; i++)
				System.out.print(columns[i] + "  ");
			// 输出列名之后换行
			System.out.println();
			// 取出结果
			while (rs.next()) {
				// 输出每一行的值
				for (int i = 1; i <= num; i++) {
					String temp = rs.getString(i);
					System.out.print(temp + "  ");
				}
				System.out.println();
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				// 用完后要关闭连接,释放资源
				if (con != null)
					con.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}

	}
}
	

输出结果为:(Eclipse环境)


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Asp.Net使用DataSet查询数据库数据

DAL层 using System; using System.Collections.Generic; using System.Text; using MODEL; using Syst...

Jsp用JDBC查询数据库并输出JSON格式数据

首先是数据库的准备,用MySQL存储数据 然后在Jsp用JDBC查询数据,输出JSON格式数据 数据库脚本 CREATE database MyNews; use MyNews; CREATE TAB...
  • wu_wxc
  • wu_wxc
  • 2016-04-27 00:29
  • 3745

遇见了奇怪bug,前端用的AngularJs,后台是SpringMVC,持久用的hibernate,跟后台断点时查询数据库返回一条数据,否则返回两条,以下是问题详述

我在做一个系统,有一个银行下拉,当银行的钱全部转出的时候则下拉不显示该银行,进入该界面的时候会初始化该银行下拉,我在点击【转出】按钮的时候在里面再一次调用了查询银行下拉的方法,结果出现了跟debug到...

Asp.Net使用DataTable查询数据库数据

DAL层 using System; using System.Collections.Generic; using System.Text; using MODEL; using Syst...

Spring JDBC学习笔记(1):查询数据库数据之JdbcTemplate的使用

今天搬代码的时候遇到一个需求,要获取数据库的表和列的元信息,包括数据类型、约束、索引等的信息,因为之前使用JDBC实现过,但是当前在一个spring管理的工程中,觉得直接用JDBC怪怪的(其实是感觉有...

查询数据库中的重复数据

========第一篇========= 在一张表中某个字段下面有重复记录,有很多方法,但是有一个方法,是比较高效的,如下语句: select data_guid from adam_entity_d...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)