Java类对数据库结果集的处理(源码)

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

JDBC提供了很多连接数据库的方法,同时也提供了ResultSet方法对数据库结果集的可滚动查询,可更新查询。

 

举例数据库:Mysql

 

声明:这两个类我都已经测试通过,如果运行出错,请仔细检查,源码方法一定没问题。问题可能会出在表数据的属性,和JDBC版本是否支持。

 

下面是源码:

 

可滚动查询源码:(对数据进行了输出控制)

 

复制代码
import  java.sql. * ;

ExpandedBlockStart.gif
public   class  TestScrollResultSet {
ExpandedSubBlockStart.gif    
public static void main(String orgs[]){
        Connection conn
=null;
ExpandedSubBlockStart.gif    
try{
       Class.forName(
"com.mysql.jdbc.Driver");
       String url
="jdbc:mysql://localhost:3306/people";
       conn
=DriverManager.getConnection(url,"username","password");
       Statement stmt
=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
       ResultSet rs
=stmt.executeQuery("select * from guestmessage");
ExpandedSubBlockStart.gif       
while(rs.next()){
            showOneRow(rs);
       }
         
       System.out.println(
"---------------------------------");
       rs.last();
       showOneRow(rs);
       rs.first();
       showOneRow(rs);
       rs.beforeFirst();
       rs.next();
       showOneRow(rs);
       rs.absolute(
2);
       showOneRow(rs);
ExpandedSubBlockStart.gif}
catch(Exception e){
   e.printStackTrace();
ExpandedSubBlockStart.gif}
finally{
ExpandedSubBlockStart.gif   
try{
ExpandedSubBlockStart.gif      
if(conn!=null){
        conn.close();
      }

ExpandedSubBlockStart.gif   }
catch(Exception e){
   e.printStackTrace();
   }

  }

}

ExpandedSubBlockStart.gif
public static void showOneRow(ResultSet rs)throws SQLException{
            System.out.print(
""+rs.getRow()+""); 
            System.out.print(
"\t"+rs.getInt(1));
            System.out.print(
"\t"+rs.getString(2));
            System.out.print(
"\t"+rs.getString(3));
            System.out.println();
}

}
复制代码

 

可更新查询源码:(可以通过此类直接更改数据库数据,但并不推荐,只作为功能介绍)

 

复制代码
import  java.sql. * ;

ExpandedBlockStart.gif
public   class  TestUpdatableResultSet {
ExpandedSubBlockStart.gif    
public static void main(String orgs[]){
        Connection conn
=null;
ExpandedSubBlockStart.gif    
try{
       Class.forName(
"com.mysql.jdbc.Driver");
       String url
="jdbc:mysql://localhost:3306/people";
       conn
=DriverManager.getConnection(url,"username","password");
       Statement stmt
=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
       ResultSet rs
=stmt.executeQuery("select id,name,url from guestmessage");
       
//ResultSet rs=stmt.executeQuery("select t.* from guestmessage");
        
//更新前结果集中的数据
ExpandedSubBlockStart.gif
       while(rs.next()){
            showOneRow(rs);
       }
         
       
//更新和删除记录
       rs.beforeFirst();
ExpandedSubBlockStart.gif       
while(rs.next()){
         String name
=rs.getString("name").trim();//.trim()过滤掉空格
ExpandedSubBlockStart.gif
         if(name.equals("施杨")){
            String sal
=rs.getString("url");
            rs.updateString(
"url",sal+"pppp");
            rs.updateRow();
ExpandedSubBlockStart.gif         }
else if(name.equals("dd")){
            rs.deleteRow();
         }

       }

       
//插入新记录
       rs.moveToInsertRow();
       rs.updateInt(
"id",19);
       rs.updateString(
"name","hahahahhaha");
       rs.updateString(
"url","ssssssss");
       rs.insertRow();
       rs.close();
       
//结果集更新后数据库中数据
       System.out.println("---------------------------------");
       rs
=stmt.executeQuery("select * from guestmessage");
ExpandedSubBlockStart.gif       
while(rs.next()){
          showOneRow(rs);
       }

       rs.close();
ExpandedSubBlockStart.gif}
catch(Exception e){
   e.printStackTrace();
ExpandedSubBlockStart.gif}
finally{
ExpandedSubBlockStart.gif   
try{
ExpandedSubBlockStart.gif      
if(conn!=null){
        conn.close();
      }

ExpandedSubBlockStart.gif   }
catch(Exception e){
   e.printStackTrace();
   }

  }

}

ExpandedSubBlockStart.gif
public static void showOneRow(ResultSet rs)throws SQLException{
            System.out.print(
"\t"+rs.getInt(1));
            System.out.print(
"\t"+rs.getString(2));
            System.out.print(
"\t"+rs.getString(3));
            System.out.println();
}

}
复制代码

 

 

实现这两个类要更改类中有关数据库数据,然后就可以完美运行了。


本文转自施杨博客园博客,原文链接:http://www.cnblogs.com/shiyangxt/archive/2008/08/15/1268305.html,如需转载请自行联系原作者

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
21小时前
|
JavaScript Java 测试技术
基于Java的个人消费管理系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的个人消费管理系统的设计与实现(源码+lw+部署文档+讲解等)
13 4
|
22小时前
|
JavaScript Java 测试技术
基于Java的大学生校园招聘网的设计与实现(源码+lw+部署文档+讲解等)
基于Java的大学生校园招聘网的设计与实现(源码+lw+部署文档+讲解等)
9 3
|
22小时前
|
JavaScript Java 测试技术
基于Java的学生就业管理系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的学生就业管理系统的设计与实现(源码+lw+部署文档+讲解等)
9 3
|
22小时前
|
JavaScript Java 测试技术
基于Java的珠江学院大学生自愿者服务网的设计与实现(源码+lw+部署文档+讲解等)
基于Java的珠江学院大学生自愿者服务网的设计与实现(源码+lw+部署文档+讲解等)
10 0
|
22小时前
|
JavaScript Java 测试技术
基于Java的学生公寓管理系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的学生公寓管理系统的设计与实现(源码+lw+部署文档+讲解等)
4 0
|
23小时前
|
JavaScript Java 测试技术
基于Java的高校大学生党建系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的高校大学生党建系统的设计与实现(源码+lw+部署文档+讲解等)
7 1
|
23小时前
|
JavaScript Java 测试技术
基于Java的超市管理系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的超市管理系统的设计与实现(源码+lw+部署文档+讲解等)
7 0
|
1天前
|
人工智能 前端开发 Java
Java语言开发的AI智慧导诊系统源码springboot+redis 3D互联网智导诊系统源码
智慧导诊解决盲目就诊问题,减轻分诊工作压力。降低挂错号比例,优化就诊流程,有效提高线上线下医疗机构接诊效率。可通过人体画像选择症状部位,了解对应病症信息和推荐就医科室。
26 10
|
1天前
|
Java 关系型数据库 MySQL
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
UWB (ULTRA WIDE BAND, UWB) 技术是一种无线载波通讯技术,它不采用正弦载波,而是利用纳秒级的非正弦波窄脉冲传输数据,因此其所占的频谱范围很宽。一套UWB精确定位系统,最高定位精度可达10cm,具有高精度,高动态,高容量,低功耗的应用。
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
|
2天前
|
存储 数据可视化 安全
Java全套智慧校园系统源码springboot+elmentui +Quartz可视化校园管理平台系统源码 建设智慧校园的5大关键技术
智慧校园指的是以物联网为基础的智慧化的校园工作、学习和生活一体化环境,这个一体化环境以各种应用服务系统为载体,将教学、科研、管理和校园生活进行充分融合。无处不在的网络学习、融合创新的网络科研、透明高效的校务治理、丰富多彩的校园文化、方便周到的校园生活。简而言之,“要做一个安全、稳定、环保、节能的校园。
19 6