在做c/s的图书管理系统时遇到的异常及解决办法:
1.对只转发结果集的无效操作:last
产生这个异常的原因是:rs.last()方法让类似指针的东西走到了最后,从而造成结果集失效。
解决方法:给PreparedStatement语句赋值时,在sql后面加两句话:
ps = conn.prepareStatement(sql,
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
2.无效的列索引
解决方法:在定位列和行时,记得行列索引都要加1,否则是从0开始的。
3. 对只转发结果集的无效操作:updateObject
产生原因可能是SQL语句中的*
解决办法:将*改为列名。
记住尽量不要用*来进行查询。
4.超出打开游标的最大数
多次拖动JTable,可能会造成这种异常,这是因为打开的游标超出了预设打开游标最大值。
解决办法:在得到prepareStatement或Statement得地方记得加上finally将其关闭。如图书管理系统中,用户管理界面需从权限DAO层获取权限值来new一个ComboBox,在用完DAO传回的值后就要在后面加上if (st != null) {
try {
st.close();
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}if(ps!=null){
try {
ps.close();
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
5.空指针异常
这是最常见的异常。解决办法就是多多调试= =|||看看到底是哪里的值没有传到,还有很重要的一点是不要轻易地赋null值。
本文针对C/S架构下图书管理系统开发过程中出现的异常进行解析,并提供了解决方案,包括结果集操作、列索引、SQL语句优化、游标管理和空指针异常等方面。
3735

被折叠的 条评论
为什么被折叠?



