我要重写jdbc--ResultSet,有兴趣请进! 原来真的可以这样!能将jdbc *.class --->*.java !!!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用一个hashtable就可以了我都写过了 dynku , 能否贴出来? 可否share ? dynku , 能否贴出来? 可否share ? 实话实说:题目太大了.并不是重写ResultSet,说对ResultSet如何使用要恰当的多. 你是不是在ejb传输ResultSet的时候出问题啦!ResulstSet不支持序列化! 有没有人试过用xml格式来解决这种不能序列化的问题?可不可行? 我今天看了看代码,好像是biti_9512207(波波斯基) 所说的东西不过现在用jdbc2.0后就没有用了/*--------------------------------------- Name: 数据库选取类 Desinger: Dynku Create: 2000/11/22 Last Modify: 2000/11/22-----------------------------------------*/package dysql;import java.sql.*;import java.util.*;public class SQLSelect{ Hashtable Records[]; int columns=0; int current=0; int max=0; Connection c; String sql; ResultSet rs; Types type;//构造方法一 public SQLSelect(Connection c,String sql) { int index=0; this.c =c; this.sql =sql; try { Statement dispStmt = this.c.createStatement (); rs =dispStmt.executeQuery (this.sql); this.columns =rs.getMetaData ().getColumnCount (); Records=new Hashtable[this.columns]; String zdz; int j; while(rs.next()) { index++; for(int i=0;i<columns;i++) { if(index==1) { Records[i]=new Hashtable(); } j=rs.getMetaData ().getColumnType(i+1); if(j==type.CHAR||j==type.VARCHAR) { zdz=new String(rs.getBytes(i+1),"gb2312"); } else { zdz=rs.getString (i+1); } Records[i].put (new Integer(index),zdz); } } max=index; } catch(Exception e) { e.printStackTrace(); max=-1; } }//构造方法二 public SQLSelect(ResultSet rs) { int index=0; this.rs =rs; try { this.columns =rs.getMetaData ().getColumnCount (); Records=new Hashtable[this.columns]; String zdz; int j; while(rs.next()) { index++; for(int i=0;i<columns;i++) { if(index==1) { Records[i]=new Hashtable(); } j=rs.getMetaData ().getColumnType(i+1); if(j==type.CHAR||j==type.VARCHAR) { zdz=new String(rs.getBytes(i+1),"gb2312"); } else { zdz=rs.getString (i+1); } Records[i].put (new Integer(index),zdz); } } max=index; } catch(Exception e) { max=-1; } }// 取下一条数据 public void next() { if (current == max) { return; } current++; }//取下n条数据 public void next(int n) { if((current+n)>max) { return; } current=current+n; }//取上一条数据 public void previous() { if (current<2) { return; } current--; }//取上n条结果 public void previous(int n) { if ((current-n)<1) { return; } current=current-n; }//到第一个结果 public void first() { this.current =1; }//到最后的结果 public void last() { this.current =max; }//获取当前行 public int getRow() { return this.current; }//设置当前行 public void setRow(int row) { if(row<1||row>max) { return; } this.current =row; }//取数据 public String getItem(int row,int column) { if(row<1||row>max) { return ""; } if(column<1||column>this.columns) { return ""; } return (String)Records[column-1].get(new Integer(row)); }//获得记录总行数 public int rowCount() { return this.max ; }//获得记录总列数 public int columnCount() { return this.columns; }} 新手刚接触面向对象(循环貌似嵌套了,高手看看怎么改) 一个时间相减的问题 如何通过反射,将一个字符串,转换为一个类? 丢脸问题一大堆,,哪位高人楼几眼 如何获取一年中的最后一周? 关于List JAVA学习中....有个问题大家给点帮助! 500分。请不要瞎说!谢谢! 我想学JAVA,想和JAVA高手门交朋友,我的QQ:4931851,EMAIL:[email protected] java之最最菜的问题 *.mvr文件是个什么东西? 我急需在主页上动态生成2维折线图,用JAVA如何实现?或有没有其他方法?
我都写过了
题目太大了.
并不是重写ResultSet,说对ResultSet如何使用要恰当的多.
不过现在用jdbc2.0后就没有用了/*---------------------------------------
Name: 数据库选取类
Desinger: Dynku
Create: 2000/11/22
Last Modify: 2000/11/22
-----------------------------------------*/package dysql;import java.sql.*;
import java.util.*;public class SQLSelect
{
Hashtable Records[];
int columns=0;
int current=0;
int max=0; Connection c;
String sql;
ResultSet rs;
Types type;
//构造方法一
public SQLSelect(Connection c,String sql)
{
int index=0; this.c =c;
this.sql =sql; try
{
Statement dispStmt = this.c.createStatement ();
rs =dispStmt.executeQuery (this.sql); this.columns =rs.getMetaData ().getColumnCount ();
Records=new Hashtable[this.columns];
String zdz;
int j;
while(rs.next())
{
index++;
for(int i=0;i<columns;i++)
{
if(index==1)
{
Records[i]=new Hashtable();
} j=rs.getMetaData ().getColumnType(i+1);
if(j==type.CHAR||j==type.VARCHAR)
{
zdz=new String(rs.getBytes(i+1),"gb2312");
}
else
{
zdz=rs.getString (i+1);
} Records[i].put (new Integer(index),zdz);
}
}
max=index;
}
catch(Exception e)
{
e.printStackTrace();
max=-1;
}
}
//构造方法二
public SQLSelect(ResultSet rs)
{
int index=0; this.rs =rs; try
{
this.columns =rs.getMetaData ().getColumnCount ();
Records=new Hashtable[this.columns];
String zdz;
int j;
while(rs.next())
{
index++;
for(int i=0;i<columns;i++)
{
if(index==1)
{
Records[i]=new Hashtable();
}
j=rs.getMetaData ().getColumnType(i+1);
if(j==type.CHAR||j==type.VARCHAR)
{
zdz=new String(rs.getBytes(i+1),"gb2312");
}
else
{
zdz=rs.getString (i+1);
} Records[i].put (new Integer(index),zdz);
}
}
max=index;
}
catch(Exception e)
{
max=-1;
}
}
// 取下一条数据
public void next()
{
if (current == max)
{
return;
}
current++;
}
//取下n条数据
public void next(int n)
{
if((current+n)>max)
{
return;
}
current=current+n;
}//取上一条数据
public void previous()
{
if (current<2)
{
return;
}
current--;
}//取上n条结果
public void previous(int n)
{
if ((current-n)<1)
{
return;
}
current=current-n;
}//到第一个结果
public void first()
{
this.current =1;
}
//到最后的结果
public void last()
{
this.current =max;
}
//获取当前行
public int getRow()
{
return this.current;
}
//设置当前行
public void setRow(int row)
{
if(row<1||row>max)
{
return;
}
this.current =row;
}
//取数据
public String getItem(int row,int column)
{
if(row<1||row>max)
{
return "";
}
if(column<1||column>this.columns)
{
return "";
}
return (String)Records[column-1].get(new Integer(row));
}
//获得记录总行数
public int rowCount()
{
return this.max ;
}
//获得记录总列数
public int columnCount()
{
return this.columns;
}
}