{ ...
/**
* 省略获取连接数据库的代码
*/ //下面一行是向用户表中部分字段插入数据,我在测试中运行成功,这里就不写出来。
ps=con.prepareStatement(insert into user(...) values(...));
/**
* 省略一些类似ps.setInt(1,"");
*/
if(ps.executeUpdate()>0){
ps=con.prepareStatement("insert into information(...) values(...)");
/**
*省略一些类似ps.setInt(1,"");
*/
}
...
}
问题来了,两条插入语句分别测试都成功了。弄成上面那种,就出现异常了:
No value specified for parameter 1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)
at com.mysql.jdbc.PreparedStatement.checkAllParametersSet(PreparedStatement.java:2578)
at com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:2554)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2401)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2345)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2330)
这个问题怎么解决?是不是不能这样向两张表中插入数据啊?跪求高手解答
/**
* 省略获取连接数据库的代码
*/ //下面一行是向用户表中部分字段插入数据,我在测试中运行成功,这里就不写出来。
ps=con.prepareStatement(insert into user(...) values(...));
/**
* 省略一些类似ps.setInt(1,"");
*/
if(ps.executeUpdate()>0){
ps=con.prepareStatement("insert into information(...) values(...)");
/**
*省略一些类似ps.setInt(1,"");
*/
}
...
}
问题来了,两条插入语句分别测试都成功了。弄成上面那种,就出现异常了:
No value specified for parameter 1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)
at com.mysql.jdbc.PreparedStatement.checkAllParametersSet(PreparedStatement.java:2578)
at com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:2554)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2401)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2345)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2330)
这个问题怎么解决?是不是不能这样向两张表中插入数据啊?跪求高手解答
解决方案 »
- 在Servlet中使用JSONArray异常
- HIBERNATE如何使用UPDATE SET MAX(COUNT)
- jfreeChart的ant javadoc生成doc文档问题
- axis2共享变量的问题
- 新手急求救:Io 异常: The Network Adapter could not establish the connection.
- 乱码问题
- 这个问题你值得看看,网上搜集答案删除Jar包不能解决
- 短期项目寻XML数字签名高手
- 那位大侠遇到过这样的错误提示
- 这种选项卡形式的web页面,前台使用什么技术开发的?
- hql 语句当from为查询结果是报错
- html的<input>标签传到action里怎么处理?
注意下参数类型是否匹配, setInt那么值肯定得int, 数据库该字段也应该为int.
然后参数个数是否正确.后面set参数值的个数是否和上面sql语句里面?号数量一致.
很明显是第2个参数设置有问题。把你具体的SQL语句发出来看看、
conn = ds.getConnection();
conn.setAutoCommit(false);
PreparedStatement pstmt1 = conn.prepareStatement(SQL_INSERT1);
PreparedStatement pstmt2 = conn.prepareStatement(SQL_INSERT2);
pstmt1.executeUpdate();
pstmt2.executeUpdate();
conn.commit();
} catch (SQLException e) {
conn.rollback();
}
第一个对象没值么,有可能是创建的最后一个prestmt对象
单步走一下循环呗
这种算是RunetimeException,需要看到具体情况.