JDBC数据库编程:ResultSet接口
掌握ResultSet接口
使用ResultSet接口进行查询
ResultSet接口
在JDBC操作中,数据库所有查询记录将使用ResultSet进行接收,并使用ResultSet显示内容。
常用方法:
bool next() 将指针移动到下一行;
getString("columnName") 返回指定列内容。
在操作中,使用statement中的executequery()方法进行数据库的查询操作,此方法的返回值就是ResultSet接口。
package 类集;
import java.sql.Connection ;
import java.sql.DriverManager ;
import java.sql.SQLException ;
import java.sql.Statement ;
import java.sql.ResultSet ;
public class ResultSetDemo01{
// 定义MySQL的数据库驱动程序
public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ;
// 定义MySQL数据库的连接地址
public static final String DBURL = "jdbc:mysql://localhost:3306/sys" ;
// MySQL数据库的连接用户名
public static final String DBUSER = "root" ;
// MySQL数据库的连接密码
public static final String DBPASS = "aaaaaa" ;
public static void main(String args[]) throws Exception {
Connection conn = null ; // 数据库连接
Statement stmt = null ; // 数据库的操作对象
ResultSet rs = null ; // 保存查询结果
String sql = "SELECT name,age FROM student" ;
Class.forName(DBDRIVER) ; // 加载驱动程序
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;
stmt = conn.createStatement() ;
rs = stmt.executeQuery(sql) ;
while(rs.next()){ // 依次取出数据
String name = rs.getString("name") ; // 取出name列的内容
int age = rs.getInt("age") ; // 取出age列的内容
System.out.print("姓名:" + name + ";") ;
System.out.print("年龄:" + age + ";") ;
System.out.println("-----------------------") ;
}
rs.close() ; ResultSet也要关闭
stmt.close() ;
conn.close() ; // 数据库关闭
}
};
输出结果:
Sun Apr 09 21:10:15 CST 2017 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
姓名:大红;年龄:35;-----------------------
姓名:大红;年龄:35;-----------------------
姓名:大红;年龄:35;-----------------------
以上操作,对于列名过长的取值不是很方便,
此时可以采取顺序的编号取得。
package 类集;
import java.sql.Connection ;
import java.sql.DriverManager ;
import java.sql.SQLException ;
import java.sql.Statement ;
import java.sql.ResultSet ;
public class ResultSetDemo01{
// 定义MySQL的数据库驱动程序
public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ;
// 定义MySQL数据库的连接地址
public static final String DBURL = "jdbc:mysql://localhost:3306/sys" ;
// MySQL数据库的连接用户名
public static final String DBUSER = "root" ;
// MySQL数据库的连接密码
public static final String DBPASS = "aaaaaa" ;
public static void main(String args[]) throws Exception {
Connection conn = null ; // 数据库连接
Statement stmt = null ; // 数据库的操作对象
ResultSet rs = null ; // 保存查询结果
String sql = "SELECT name,age FROM student" ;
Class.forName(DBDRIVER) ; // 加载驱动程序
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;
stmt = conn.createStatement() ;
rs = stmt.executeQuery(sql) ;
while(rs.next()){ // 依次取出数据
String name = rs.getString(1) ; // 取出name列的内容
int age = rs.getInt(2) ; // 取出age列的内容
System.out.print("姓名:" + name + ";") ;
System.out.print("年龄:" + age + ";") ;
System.out.println("-----------------------") ;
}
rs.close() ;
stmt.close() ;
conn.close() ; // 数据库关闭
}
};
输出结果:
Sun Apr 09 21:19:51 CST 2017 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
姓名:大红;年龄:35;-----------------------
姓名:大红;年龄:35;-----------------------
姓名:大红;年龄:35;-----------------------
综合来说,使用顺序编号更方便
问题:直接使用select * from student不是更简单吗?
但是,在开发中不能直接使用*的。因为查询的时候,不能明确的表示要取的内容是什么,所以开发中,要明确写出需要查询的列。
JDBC数据库编程:ResultSet接口的更多相关文章
- JDBC数据库编程常用接口(转)
JDBC的全称是Java DataBase Connectivity,是一套面向对象的应用程序接口(API),制定了统一的访问各种关系数据库的标准接口,为各个数据库厂商提供了标准接口的实现.这东西能够 ...
- JDBC数据库编程:PreparedStatement接口
使用PreparedStatement进行数据库的更新及查询操作. PreparedStatement PreparedStatement是statement子接口.属于预处理. 使用statemen ...
- Java JDBC数据库编程
课程 Java面向对象程序设计 一.实验目的 掌握数据库编程技术 二.实验环境 1.微型计算机一台 2.WINDOWS操作系统,Java SDK,Eclipse开发环境,Microsoft SQL ...
- JDBC数据库编程:callableStatement接口
了解MySQL存储过程建立, 了解存储过程中参数传递的三种方式 了解callablestatement调用存储过程操作. 因为在现在开发中,使用存储过程的地方越来越少,所以,对于存储过程使用,只需要了 ...
- JDBC数据库编程
常识名词:ODBC ,JDBC,JDBC API ,JDBC Driver API 数据准备,续上节: JDBC编程流程 最基本的JDBC操作 本段内容主要完成JDBC的增删查改操作 packa ...
- Java高级篇(三)——JDBC数据库编程
JDBC是连接数据库和Java程序的桥梁,通过JDBC API可以方便地实现对各种主流数据库的操作.本篇将介绍一下如何使用JDBC操作数据库(以MySQL为例). 一.JDBC JDBC制定了统一访问 ...
- Java ——JDBC数据库编程
数据库分类 关系型数据库:以表来存放数据的,数据与数据之间的关系通过表之间的连接体现 面向对象的数据库:保存的是对象本身 其它 数据库:数据库管理系统中创建一个个的保存数据的单位 数据是保存在数据库的 ...
- JDBC数据库编程(java实训报告)
文章目录 一.实验要求: 二.实验环境: 三.实验内容: 1.建立数据库连接 2.查询数据 2.1 测试结果 3.添加数据 3.1.测试结果 4.删除数据 4.1.测试结果 5.修改数据 5.1 测试 ...
- JDBC数据库编程基本流程
1.加载驱动类 Class.forName(""); 2.创建数据库连接 Connection con = DriverManager.getConnection(url, u ...
随机推荐
- Linux基础系列-Day6
Samba服务(基于CentOS 7.0) Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成,Samba主要用于Linux或UNIX和Windows系统之 ...
- hdu 2196(Computer 树形dp)
A school bought the first computer some time ago(so this computer's id is 1). During the recent year ...
- 旺财C# .NET代码生成器之DTcms4/5代码批量生成功能
经近半年的实战积累.于2017年6月底,增加对第三方开源软件DTcms(4和5都支持)的代码生成支持. 可以一键生成的DTcms4/5代码如下:1.Model经典三层实体2.DAL经典三层数据库访问层 ...
- VB查询数据库之登陆窗体——机房收费总结(一)
机房收费系统已经做了很长一段时间了,虽然到目前为止,仍然没有结束,但已经结节尾声了.我感觉现在有必要回首总结一下整个机房收费系统. 除了结账做了一半,报表接触一点之外,其他的都基本上差不多了.从做过的 ...
- [BZOJ2669][CQOI2012]局部最小值(容斥+状压DP)
发现最多有8个限制位置,可以以此为基础DP和容斥. $f_{i,j}=f_{i-1,j}\times (cnt_j-i+1)+\sum_{k\subset j} f_{i-1,k}$ $cnt_j$表 ...
- 【贪心】AtCoder Regular Contest 079 E - Decrease (Judge ver.)
每次将最大的数减到n以下,如此循环直到符合题意. 复杂度大概是n*n*log?(?). #include<cstdio> #include<iostream> #include ...
- 【差分约束系统】【最短路】【spfa】CDOJ1646 穷且益坚, 不坠青云之志。
求一个有n个元素的数列,满足任意连续p个数的和不小于s, 任意连续q个数的和不大于t. 令sum[i]表示前i项的和(0<=i<=n,sum[0]=0) 那么题目的条件可转化为: sum[ ...
- (原创)Stanford Machine Learning (by Andrew NG) --- (week 4) Neural Networks Representation
Andrew NG的Machine learning课程地址为:https://www.coursera.org/course/ml 神经网络一直被认为是比较难懂的问题,NG将神经网络部分的课程分为了 ...
- 防止xss攻击
<?php function _removeXSS($val) { $search = 'abcdefghijklmnopqrstuvwxyz'; $search .= 'ABCDEFGHIJK ...
- NServiceBus入门:启程(Introduction to NServiceBus: Getting started)
原文地址:https://docs.particular.net/tutorials/intro-to-nservicebus/1-getting-started/ 侵删. 最好的学习NService ...