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

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

 

举例数据库:Mysql

 

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

 

下面是源码:

 

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

 

Java类对数据库结果集的处理(源码)
Java类对数据库结果集的处理(源码)import java.sql.*;
Java类对数据库结果集的处理(源码)
Java类对数据库结果集的处理(源码)
public class TestScrollResultSet{
Java类对数据库结果集的处理(源码)    
public static void main(String orgs[]){
Java类对数据库结果集的处理(源码)        Connection conn
=null;
Java类对数据库结果集的处理(源码)    
try{
Java类对数据库结果集的处理(源码)       Class.forName(
"com.mysql.jdbc.Driver");
Java类对数据库结果集的处理(源码)       String url
="jdbc:mysql://localhost:3306/people";
Java类对数据库结果集的处理(源码)       conn
=DriverManager.getConnection(url,"username","password");
Java类对数据库结果集的处理(源码)       Statement stmt
=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
Java类对数据库结果集的处理(源码)       ResultSet rs
=stmt.executeQuery("select * from guestmessage");
Java类对数据库结果集的处理(源码)       
while(rs.next()){
Java类对数据库结果集的处理(源码)            showOneRow(rs);
Java类对数据库结果集的处理(源码)       }
         
Java类对数据库结果集的处理(源码)       System.out.println(
"---------------------------------");
Java类对数据库结果集的处理(源码)       rs.last();
Java类对数据库结果集的处理(源码)       showOneRow(rs);
Java类对数据库结果集的处理(源码)       rs.first();
Java类对数据库结果集的处理(源码)       showOneRow(rs);
Java类对数据库结果集的处理(源码)       rs.beforeFirst();
Java类对数据库结果集的处理(源码)       rs.next();
Java类对数据库结果集的处理(源码)       showOneRow(rs);
Java类对数据库结果集的处理(源码)       rs.absolute(
2);
Java类对数据库结果集的处理(源码)       showOneRow(rs);
Java类对数据库结果集的处理(源码)}
catch(Exception e){
Java类对数据库结果集的处理(源码)   e.printStackTrace();
Java类对数据库结果集的处理(源码)}
finally{
Java类对数据库结果集的处理(源码)   
try{
Java类对数据库结果集的处理(源码)      
if(conn!=null){
Java类对数据库结果集的处理(源码)        conn.close();
Java类对数据库结果集的处理(源码)      }

Java类对数据库结果集的处理(源码)   }
catch(Exception e){
Java类对数据库结果集的处理(源码)   e.printStackTrace();
Java类对数据库结果集的处理(源码)   }

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

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

Java类对数据库结果集的处理(源码)
public static void showOneRow(ResultSet rs)throws SQLException{
Java类对数据库结果集的处理(源码)            System.out.print(
""+rs.getRow()+""); 
Java类对数据库结果集的处理(源码)            System.out.print(
"\t"+rs.getInt(1));
Java类对数据库结果集的处理(源码)            System.out.print(
"\t"+rs.getString(2));
Java类对数据库结果集的处理(源码)            System.out.print(
"\t"+rs.getString(3));
Java类对数据库结果集的处理(源码)            System.out.println();
Java类对数据库结果集的处理(源码)}

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

 

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

 

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

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

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

Java类对数据库结果集的处理(源码)       rs.close();
Java类对数据库结果集的处理(源码)}
catch(Exception e){
Java类对数据库结果集的处理(源码)   e.printStackTrace();
Java类对数据库结果集的处理(源码)}
finally{
Java类对数据库结果集的处理(源码)   
try{
Java类对数据库结果集的处理(源码)      
if(conn!=null){
Java类对数据库结果集的处理(源码)        conn.close();
Java类对数据库结果集的处理(源码)      }

Java类对数据库结果集的处理(源码)   }
catch(Exception e){
Java类对数据库结果集的处理(源码)   e.printStackTrace();
Java类对数据库结果集的处理(源码)   }

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

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

Java类对数据库结果集的处理(源码)
public static void showOneRow(ResultSet rs)throws SQLException{
Java类对数据库结果集的处理(源码)            System.out.print(
"\t"+rs.getInt(1));
Java类对数据库结果集的处理(源码)            System.out.print(
"\t"+rs.getString(2));
Java类对数据库结果集的处理(源码)            System.out.print(
"\t"+rs.getString(3));
Java类对数据库结果集的处理(源码)            System.out.println();
Java类对数据库结果集的处理(源码)}

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

 

 

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


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

上一篇:Python之日期操作及转换详解


下一篇:java在处理大数据的时候一些小技巧