JDBC学习篇之使用ResultSet执行简单查询操作
来源:互联网 发布:网络tv电视直播软件 编辑:程序博客网 时间:2024/06/07 13:22
一、前言
结果集(ResultSet)是数据中查询结果返回的一种对象,可以说结果集是一个存储查询结果的对象,但是结果集并不仅仅具有存储的功能,它同时还具有操纵数据的功能,可能完成对数据的更新等。
结果集读取数据的方法主要是getXXX(),它的参数可以是整型,表示第几列,下标从1开始;还可以是列名,指定根据别名返回某一列的值,返回的是对应的XXX类型的值。
如果对应那列是空值,XXX是对象的话返回XXX型的空值;如果XXX是数字类型,如Float等则返回0;boolean返回false;使用getString()可以返回所有的列的值,不过返回的都是字符串类型的。
XXX可以代表的类型有: 基本的数据类型如整型(int),布尔型(Boolean),浮点型(Float,Double)等,比特型(byte),还包括一些特殊的类型,如:日 期类型(java.sql.Date),时间类型(java.sql.Time),时间戳类型(java.sql.Timestamp),大数型 (BigDecimal和BigInteger等)等。
还可以使用getArray(intcolindex/String columnname),通过这个方法获得当前行中,colindex所在列的元素组成的对象的数组。使用 getAsciiStream(intcolindex/String colname)可以获得该列对应的当前行的ascii流。也就是说所有的getXXX方法都是对当前行进行操作。
结果集从其使用的特点上 可以分为四类,这四类的结果集的所具备的特点都是和Statement语句的创建有关,因为结果集是通过Statement语句执行后产生的,所以可以 说,结果集具备何种特点,完全决定于Statement。
二、案例
♦搭建一个简单的Java工程
♦创建一张数据库表t_user
create table t_user( id VARCHAR2(10) not null, name VARCHAR2(14), password VARCHAR2(13), email VARCHAR2(20))
♦新建一个工具类
import java.io.File;import java.io.FileInputStream;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.Properties;/** * @author queen * @since 2017-07-22 */public class ConnectionUtils {private static String driver;private static String url;private static String username;private static String password;public static void getProperties(String fileName) {Properties prop = new Properties();File file = new File(fileName);try {FileInputStream fis = new FileInputStream(file);//加载输入流指定的文件prop.load(fis);//获得文件中的key对应的value,赋值给全局变量driver = prop.getProperty("driverClassName");url = prop.getProperty("url");username = prop.getProperty("username");password = prop.getProperty("password");} catch (Exception e) {e.printStackTrace();}}/** * 利用getProperties方法获得参数,构造连接并返回 * @return */public static Connection getConnection() {getProperties("src/db.properties");Connection connection = null;try {Class.forName(driver);connection = DriverManager.getConnection(url, username, password);} catch (Exception e) {e.printStackTrace();}return connection;}/** * 关闭连接 * @param connection */public static void close(Connection connection){if(connection!=null){try {connection.close();} catch (SQLException e) {e.printStackTrace();}}}/** * 关闭Statement * @param stmt */public static void close(Statement stmt){if(stmt!=null){try {stmt.close();} catch (SQLException e) {e.printStackTrace();}}}/** * 关闭结果集 * @param rs */public static void close(ResultSet rs){if(rs!=null){try {rs.close();} catch (SQLException e) {e.printStackTrace();}}}}
♦完成最基本的ResultSet操作,新建JDBCResultSet类
/** * @author queen * @since 2017-07-22 */public class JDBCResultSet {public static void getData() {String sql = "select * from t_user";Statement stmt = null;ResultSet rs = null;Connection connection = ConnectionUtils.getConnection();try {stmt = connection.createStatement();rs = stmt.executeQuery(sql);while (rs.next()) {String id = rs.getString("id");String name = rs.getString("name");String password = rs.getString("password");String email = rs.getString("email");System.out.println(id + "," + name + "," + password + ","+ email);}} catch (SQLException e) {e.printStackTrace();} finally {ConnectionUtils.close(rs);ConnectionUtils.close(stmt);ConnectionUtils.close(connection);}}public static void main(String[] args) {getData();}}
♦测试运行一下,打印出如下结果:
1,Tom,123456,123456789@qq.com
上面这种是最简单的ResultSet使用,因为这个ResultSet它起到的作用就是完成了查询结果的存储功能,而且只能读取一次,不能够来回的滚动读取。这种结果集的创建方式如下:
Statement st = conn.CreateStatement()
ResultSet rs = Statement.excuteQuery(sql);
由于这种结果集不支持滚动的读取功能,所以如果获得这样一个结果集,只能使用它里面的next()方法,逐个的读去数据。
博客地址:http://www.marsitman.com/jdbc/jdbc_resultset.html
- JDBC学习篇之使用ResultSet执行简单查询操作
- JDBC : 使用 ResultSet 执行查询操作
- JDBC:通过 ResultSet 执行查询操作
- 通过ResultSet执行查询操作
- JDBC_使用ResultSet 执行查询操作(基于oracle数据库)
- JDBC之使用Statement,PreparedStatement,ResultSet
- MySQL数据库学习--JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查
- JDBC 之 ResultSet 对象
- JDBC之ResultSet对象
- JDBC之ResultSet用法
- JDBC之ResultSet
- JDBC之ResultSet接口
- java简单jdbc查询操作
- JDBC 的ResultSet操作理解
- JDBC学习第二站之ResultSet与ResultSetMeta
- 关于JDBC(三)--- 执行查询操作
- JDBC基础教程之ResultSet对象
- JDBC基础教程之ResultSet对象
- canvas画板pc
- 请求转发(Forward)和重定向(Redirect)的区别
- 20170921-浅谈第二阶段Javaweb的学习以及两次公司笔试面试的经验(一)
- banner 无线轮播+小圆点
- 自定义简单的(tomcat)web服务器
- JDBC学习篇之使用ResultSet执行简单查询操作
- 刮刮乐移动端
- 【51Nod1836】战忽局的手段
- Java学习第四天
- TI am335x 内核分析2--资源遍历代码分析
- Viewpager+滚动+ta...(代码)
- git bash命令
- SpringCloud基础(4)
- NFS挂载的安装部署和一些记录