烦了很久的问题?怎么解决?(郁闷,高手帮忙呀!)

lilysl 2008-03-11 02:27:37
我的类如下:我必须用CachedRowSet,我要实现断点连接;
import java.sql.SQLException;
import java.sql.Connection;

import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.DriverManager;
import javax.sql.rowset.CachedRowSet;
import com.sun.rowset.CachedRowSetImpl;

public class test {
public test () {
}


public static void main(String[] args) throws SQLException {

Connection con = null;
Statement st = null;
ResultSet rst = null;
try{
//注册数据库驱动程序
Class.forName("oracle.jdbc.driver.OracleDriver");
//获取数据库连接
con = DriverManager.getConnection("jdbc:oracle:thin:@192.168.100.101:1521:test","aa","aa");
CachedRowSet crs = null;
crs = new CachedRowSetImpl();
crs.setType(ResultSet.TYPE_SCROLL_INSENSITIVE);
crs.setConcurrency(ResultSet.CONCUR_UPDATABLE);
crs.setCommand("select * from table1 where id=101");
crs.execute(con);
crs.absolute(1);
crs.deleteRow();
crs.acceptChanges(con); //该行为34行
}
catch (Exception e){
e.printStackTrace();

}
finally{
try{
//关闭连接
if (rst != null)
rst.close();
if (con != null)
con.close();
}
catch (SQLException e){
throw e;
}
}
}
}
我的表table1为

id name bk
101 aa
102 bb 你好

如果删除 id=102不出异常,
输出:
Value of params1 : {0} 102
Value of params2 : {0} bb
Value of params3 : {0} 你好
不知道我为什么输出?能不能不让输出?


但是删除id=101后出以下异常:

运行后抛出异常:
Value of params1 : {0} 101
Value of params2 : {0} aa
Value of params3 : {0} null
java.lang.NullPointerException
at com.sun.rowset.internal.CachedRowSetWriter.deleteOriginalRow(CachedRowSetWriter.java:862)
at com.sun.rowset.internal.CachedRowSetWriter.writeData(CachedRowSetWriter.java:312)
at com.sun.rowset.CachedRowSetImpl.acceptChanges(CachedRowSetImpl.java:859)
at com.sun.rowset.CachedRowSetImpl.acceptChanges(CachedRowSetImpl.java:919)
at test.main(test.java:34)

id=101 的bk一定为null;


...全文
172 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
lilysl 2008-03-13
  • 打赏
  • 举报
回复
没人知道吗?我怎么总是遇到没人会的问题?
yuwenbao 2008-03-12
  • 打赏
  • 举报
回复
crs.absolute(1);
我记得是零吧
KK3K2005 2008-03-12
  • 打赏
  • 举报
回复
java.lang.NullPointerException
at com.sun.rowset.internal.CachedRowSetWriter.deleteOriginalRow(CachedRowSetWriter.java:862)

异常不是报的很清楚了
lilysl 2008-03-12
  • 打赏
  • 举报
回复
帮忙顶呀!
lilysl 2008-03-12
  • 打赏
  • 举报
回复
报异常的类,是sum公司的代码,我看不到;我无法控制该方法
Squall1009 2008-03-11
  • 打赏
  • 举报
回复
RP啊
lilysl 2008-03-11
  • 打赏
  • 举报
回复
我下了一个ojdbc14_g.jar,还是有相同的错误,用sqlserver2000也有同样的错误
lilysl 2008-03-11
  • 打赏
  • 举报
回复
我用的是oracle 10.1.0.1 ojdbc14.jar,也是出同样的问题
lilysl 2008-03-11
  • 打赏
  • 举报
回复
楼上的能给我一下你说的ojdbc14_g.jar吗?我用的是class12.jar
Squall1009 2008-03-11
  • 打赏
  • 举报
回复
我测试没有问题,使用的oracle 10.1.0.2.0
jdbc driver也是10.1.0.2.0的 ojdbc14_g.jar
lilysl 2008-03-11
  • 打赏
  • 举报
回复
不是中文问题,把"你好",换成"hello"也是一样的.
chinacreator 2008-03-11
  • 打赏
  • 举报
回复
很有可能是中文问题 ,你上网查一下解决数据库和java 的中文问题相关的贴,看行不行。

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧