- Java code
Connection conn = new Database().getConn(); String sqlStr = "insert into user (name,password,email,sex,tel) values (?,?,?,?,?)"; try { PreparedStatement ps = conn.prepareStatement(sqlStr); int i=1; ps.setString(i++, user.getName()); ps.setString(i++, user.getPassword()); ps.setString(i++, user.getEmail()); ps.setInt(i++, user.getSex().intValue()); ps.setString(i++, user.getTel()); ps.executeQuery(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }
------解决方案--------------------
Connection conn = new Database().getConn();
String sqlStr = "insert into user (name,password,email,sex,tel) values (?,?,?,?,?)";
try {
PreparedStatement ps = conn.prepareStatement(sqlStr);
int i=1;
ps.setString(i, user.getName());
ps.setString(i++, user.getPassword());
ps.setString(i++, user.getEmail());
ps.setInt(i++, user.getSex().intValue());
ps.setString(i++, user.getTel());
ps..executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
修改这两处试试看
------解决方案--------------------
我觉得只须修改:将 ps.executeQuery()改为:ps.executeUpdate()
6楼的另一个修改:
ps.setString(i, user.getName());
会导致ps.setString(i++, user.getPassword()); 也对i字段进行插入而出错。
------解决方案--------------------
应该是 不报错,但是不会执行更新。。。
将 ps.executeQuery()改为:ps.executeUpdate()
才有效果。。
------解决方案--------------------
- Java code
Connection conn = new Database().getConn(); String sqlStr = "insert into user (name,password,email,sex,tel) values (?,?,?,?,?)"; try { PreparedStatement ps = conn.prepareStatement(sqlStr); int i=1; ps.setString(i++, user.getName()); ps.setString(i++, user.getPassword()); ps.setString(i++, user.getEmail()); [color=#FF0000]ps.setInt(i++, user.getSex().intValue());[/color] ps.setString(i++, user.getTel()); [color=#FF0000]ps.executeQuery();[/color] } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }