JDBC操作数据库常见的一些错误及解决方案

JDBC操作数据库常见的一些异常及解决方案

项目开发的时候遇到一些问题,基本都是数据库的原因。

觉得总结一下常见的数据库异常,总结如下:

1.java.sql.SQLException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor。

错误原因:数据库的sid即数据库名称没有配置正确。

 

2.java.sql.SQLException: ORA-00942: table or view does not exist

错误原因:太明显了,你一定要检查你的SQL语句! from的表或视图一定是名称搞错了。

 

3.java.sql.SQLException: 无效的列索引

错误原因:可能是SQL语句中参入了中文的符号,也可能是代码中的statement为null,在后面执行sql的时候报的错误。最有可能的错误原因是PreparedStatement调用时调用setXXX(int index, **)时,传参的起始序列号写错误了。参数的index实际上是从1开始的,而不是0,非常不理解为什么!!!建议通过别名来获取数据。

 

4.java.sql.SQLException: Io 异常: Connection reset

错误原因:你连接的数据库的服务重启了或因为网络断开了,导致数据库连接异常。查看网络,重新连接一下服务器一般可以解决问题。

 

5.java.sql.SQLException: Io 异常: The Network Adapter could not establish the connection

错误原因:无非就是数据库+网络的问题。数据库连接满了,监听停了,并发太大,IP,防火墙如此而已。具体参考:http://blog.csdn.net/Mr_Von/article/details/2880626。还有一种极变态的原因,那就是数据库的表被锁死了。可能是某一个数据库人员直接操作数据库表,使用如for update等命令,导致表被锁死了。

 

以上就是我总结的一些数据库原因和相应的解决方案,实践出真知,血泪经验积累,以后会随时补充。欢迎大家指正。