日期:2014-05-18  浏览次数:20795 次

速求:这条语句错了吗?PS:我正在求职上机
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();
        }