Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 没有为参数8指定值_Java_Sql_Postgresql - Fatal编程技术网

Java 没有为参数8指定值

Java 没有为参数8指定值,java,sql,postgresql,Java,Sql,Postgresql,我从文件中读取每行文本,并使用动态查询插入数据库。每个文件都是根据表名命名的,因此我获取了用于构建查询的列名和类型,然后只插入值。 当我不得不插入一个空值时,我遇到了问题,看不出我遗漏了什么? 根据我看到的印刷线条8?标记和8个值,但错误消息显示:没有为参数8指定值 生成的Insert语句: INSERT INTO dbo.request_service_log (request_service_log_id, request_service_id, severity_cde, log_cde,

我从文件中读取每行文本,并使用动态查询插入数据库。每个文件都是根据表名命名的,因此我获取了用于构建查询的列名和类型,然后只插入值。 当我不得不插入一个空值时,我遇到了问题,看不出我遗漏了什么? 根据我看到的印刷线条8?标记和8个值,但错误消息显示:没有为参数8指定值

生成的Insert语句:

INSERT INTO dbo.request_service_log (request_service_log_id, request_service_id, severity_cde, log_cde, log_txt, source_id, message_id, application_id) values(?, ?, ?, ?, ?, ?, ?, ?)
参数值:

23584022,222635,C,10002002,Start Monitor Failed,0,25431082,NULL
代码:

public void insertData(字符串tableName,列表行){
列表列名称=null;
试一试{
//获取指定表的列名和类型
columnNames=getColumns(表名,“dbo”);
}
捕获(SQLSE异常){
System.out.println(se.getMessage());
}
字符串insertColumns=“”;
字符串insertValues=“”;
对于(int i=0;i
项目
调用的
拆分(',')
结果产生少于8个项目时,您将遇到此问题

您应该通过将
i
从0迭代到7(包括7),并检查
items
是否有足够的元素覆盖
i
来解决此问题:

for (int i = 0 ; i != 8 ; i++) {
    String item = (items.length() < i) ? items[i] : "NULL";
    ... // Now use item instead of items[i] below
}
for(int i=0;i!=8;i++){
字符串item=(items.length()
请发布堆栈跟踪您有一行错误:
ps.setNull((1+1),Types.INTEGER)
,需要更改为
ps.setNull((i+1),type.INTEGER)
ps.setNull((1+1),type.INTEGER)
应该是
ps.setNull((i+1),type.INTEGER)谢谢@Danilo我需要的是第二双眼睛。很好的观点@dasblinkenlight谢谢你指出了一个安全网解决方案。
for (int i = 0 ; i != 8 ; i++) {
    String item = (items.length() < i) ? items[i] : "NULL";
    ... // Now use item instead of items[i] below
}