java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 参数不足,期待是 1。
try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connectioncon=DriverManager.getConn...
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:PIMS","Test","1234");
Statement stml=con.createStatement();
ResultSet rs;
rs = stml.executeQuery("select * from tea where ID="+I+"");
if(rs.next())
{
JOptionPane.showMessageDialog(null,"对不起,该账号已存在!");
}
else
{
stml.executeUpdate("insert into tea(ID,Name,Password) values ("+Tf1.getText()+","+Tf2.getText()+","+Tf3.getText()+")");
}
stml.close();
con.close();
}
catch (ClassNotFoundException e1)
{
e1.printStackTrace();
}
catch (SQLException e1)
{
e1.printStackTrace();
}
}
}
添加数据为什么会提示参数不足的情况,tea表中ID,Name,Password都有,ID为主键。
int I= Integer.parseInt(Tf1.getText());
String N=Tf2.getText();
int Pwd= Integer.parseInt(Tf3.getText());
数据类型的定义都应该是无误的 展开
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:PIMS","Test","1234");
Statement stml=con.createStatement();
ResultSet rs;
rs = stml.executeQuery("select * from tea where ID="+I+"");
if(rs.next())
{
JOptionPane.showMessageDialog(null,"对不起,该账号已存在!");
}
else
{
stml.executeUpdate("insert into tea(ID,Name,Password) values ("+Tf1.getText()+","+Tf2.getText()+","+Tf3.getText()+")");
}
stml.close();
con.close();
}
catch (ClassNotFoundException e1)
{
e1.printStackTrace();
}
catch (SQLException e1)
{
e1.printStackTrace();
}
}
}
添加数据为什么会提示参数不足的情况,tea表中ID,Name,Password都有,ID为主键。
int I= Integer.parseInt(Tf1.getText());
String N=Tf2.getText();
int Pwd= Integer.parseInt(Tf3.getText());
数据类型的定义都应该是无误的 展开
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏5(财富值+成长值)
展开全部
你这么拼接sQL是不行的,第一,容易sql注入。第二,效率极其低下。你上面的sql直接用Java变量拼接sql,它每次执行,都要进行校验和编译,在正常项目中不可取,规范代码,养成良好习惯最重要。你用字符串拼接当然要加单引号了,如2楼所说。规范的写法如批量插入:@Override
public int[] batchInsert(final List<Map<String, String>> dataMapList) {
String sql = "insert into DATA_FB_EUROP_AVG_ODDS(EXPECT,LOTTID,XID,SVAL,CVAL,MVAL,CREATE_TIME) values(?,?,?,?,?,?,now())";
int[] insertCount = jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() {
@Override
public void setValues(PreparedStatement ps, int i) throws SQLException {
ps.setString(1, dataMapList.get(i).get("expect"));
ps.setString(2, dataMapList.get(i).get("lottid"));
ps.setString(3, dataMapList.get(i).get("xid"));
ps.setString(4, dataMapList.get(i).get("s"));
ps.setString(5, dataMapList.get(i).get("c"));
ps.setString(6, dataMapList.get(i).get("m"));
}
@Override
public int getBatchSize() {
return dataMapList.size();
}
});
return insertCount;
}
public int[] batchInsert(final List<Map<String, String>> dataMapList) {
String sql = "insert into DATA_FB_EUROP_AVG_ODDS(EXPECT,LOTTID,XID,SVAL,CVAL,MVAL,CREATE_TIME) values(?,?,?,?,?,?,now())";
int[] insertCount = jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() {
@Override
public void setValues(PreparedStatement ps, int i) throws SQLException {
ps.setString(1, dataMapList.get(i).get("expect"));
ps.setString(2, dataMapList.get(i).get("lottid"));
ps.setString(3, dataMapList.get(i).get("xid"));
ps.setString(4, dataMapList.get(i).get("s"));
ps.setString(5, dataMapList.get(i).get("c"));
ps.setString(6, dataMapList.get(i).get("m"));
}
@Override
public int getBatchSize() {
return dataMapList.size();
}
});
return insertCount;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用 pstmt ,看起来清楚点
connection 会在出 exception 的时候不关闭……
connection 会在出 exception 的时候不关闭……
追问
还是提示 参数不足,期待是1。
追答
贴代码看呀
另外,你要是用 stmt 而非 pstmt 的话,可以把 sql 在控制台打印出来。方便你检查,并且可以贴到 sql 的查询工具里去运行,看结果
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2015-01-08
展开全部
"insert into tea(ID,Name,Password) values ('"+Tf1.getText()+"','"+Tf2.getText()+"','"+Tf3.getText()+"')"
追问
数据类型 单引号加不加都会提示参数问题。不过我们老师让我们注意这方面。改成
String sql111 ="insert into tea(ID,Name,Password) values ("+Tf1.getText()+",'"+Tf2.getText()+"',"+Tf3.getText()+")";
stml.executeUpdate(sql111);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
insert的values里,是不是多了个")"
更多追问追答
追问
没有没有 第一个反括号是values的 第二个反括号是stml.executeUpdate的
追答
表tea里可能还有不为空的字段吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询