jdbc 关于添加数据的问题

s14791577605 2016-11-28 07:44:51
public static Users register(String name,String pwd){
Users users = null;
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:MySql:///register","root","0012");
PreparedStatement ps = conn.prepareStatement("insert users(name,pwd) values ('?','?')");
ps.setString(1, name);
ps.setString(2, pwd);
ResultSet rs = ps.executeQuery();
int count = 0;
if (rs.next()) {
count++;
System.out.println("用户名重复");
}else{
users = new Users(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getInt(4));
}

} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally{
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return users;
}

这里有问题:PreparedStatement ps = conn.prepareStatement("insert users(name,pwd) values ('?','?')");
ps.setString(1, name);
ps.setString(2, pwd);

错误: Parameter index out of range (1 > number of parameters, which is 0).

谁能告诉我要怎么办 - - 我改不出来
...全文
185 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
webnonono 2016-11-29
  • 打赏
  • 举报
回复
对啊.问号的话就不能加引号了
  • 打赏
  • 举报
回复
恩,去掉单引号试试
晴天_ccc 2016-11-28
  • 打赏
  • 举报
回复
PreparedStatement ps = conn.prepareStatement("insert users(name,pwd) values ('?','?')"); insert 后面加上 into , 把?两旁的单引号去掉应该就可以了。

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧