一、SQL传参问题
java.sql.SQLException: No value specified for parameter 5
原因:sql语句占位符跟传入的参数个数不一致
例如: String sql = “insert into tbcharge_station(station_name,device_number,province,address) values(?,?,?,?,?)”;
如上,这里只有四个参数,但是?占位符却有五个,去掉一个?即可其他类似错误: https://blog.csdn.net/qq_54224923/article/details/124483728
二、空指针问题
Exception in thread "main" java.lang.NullPointerException.
原因:
(1)类里面属性之一的对象数组未进行初始化
解决方法:
1.在属性声明的时候就进行显式的初始化赋值;2.在构造器中进行属性的初始化赋值
具体见连接:https://blog.csdn.net/qq_39229079/article/details/115464230
(2)没有对应的jar包
解决方法:看下有没有相应的jar包,主要版本要相对应
(3)properties配置问题
解决方法:
情况一:项目是使用maven来编写的,在maven中,classpath的根目录其实是resources文件夹,将properties文件移到resources文件夹即可
情况二:项目是普通项目,将properties文件移到src文件夹下即可
情况三:21版的IDEA第三方jar包和配置文件都应该放在resources文件夹另外注意:“db.properties"和JDBCUtils类都是在同一个工程下,就不要写成”/db.properties",也不要写成“src/db.properties”,因为idea很奇葩,在这个地方的properties文件即使用上绝对路径也会报空指针错误
另一种解决思路:https://blog.csdn.net/overflowError/article/details/115016949?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-115016949-blog-116446028.pc_relevant_recovery_v2&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-115016949-blog-116446028.pc_relevant_recovery_v2&utm_relevant_index=1
三、连接关闭问题
java.sql.SQLException: No operations allowed after statement closed.
原因:不正常关闭或者有太多没有关闭的语句或池连接 解决方法:关闭之前没有关闭的mysql链接,或者查找是否有关闭连接的代码在启动链接之前
如: //关闭数据库
ps.close();
conn.close();//进行数据表数据添加操作
ps.executeUpdate();更改为: //进行数据表数据添加操作
ps.executeUpdate(); //关闭数据库
ps.close();
conn.close();
四、下标错误
Exception in thread "main" java.lang.RuntimeException: java.sql.SQLException: Column Index out of ra
解决方法:java中是从1开始,不是从0开始的
具体见链接:https://blog.csdn.net/qq_36742720/article/details/81509557