JDBC数据库连接的一些问题

文章详细解析了Java中常见的SQL错误,包括传参个数不匹配导致的SQLException,空指针异常的多种原因及解决方案,如未初始化对象数组和缺失jar包,以及连接关闭和下标错误的问题。针对这些问题,提供了修改SQL语句、初始化变量、检查配置文件位置以及正确管理数据库连接等解决策略。
摘要由CSDN通过智能技术生成

一、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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值