0

我遇到了这个问题,我无法弄清楚这段代码有什么问题。我将 jdbc 和 ms 管理系统用于数据库及其连接。

代码:

try {
            //create user
            preparedStatement = conn.prepareStatement("INSERT INTO Users(name, pass, type) VALUES (nick=?,pass=?,type=?)",
                    ResultSet.TYPE_SCROLL_INSENSITIVE,  ResultSet.CONCUR_READ_ONLY);            
            preparedStatement.setString(1, user.getNickName());
            preparedStatement.setString(2, user.getPassword());
            preparedStatement.setInt(3, type);
            rs = preparedStatement.executeQuery();
            System.out.println(rs.toString());
        catch (Exception e) {
            System.out.println("Exception: " + e);
        }

错误:

Exception: com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near '='.
4

2 回答 2

3

您使用?字符的方式在 JDBC 中无效:

"INSERT INTO Users(name, pass, type) VALUES (nick=?,pass=?,type=?)

?代表整个绑定变量。尝试

"INSERT INTO Users(name, pass, type) VALUES (?, ?, ?)"

此外,用于executeUpdate执行插入语句(或更新或删除)。

于 2013-05-10T18:14:00.717 回答
2

从值列表中删除字段名称。这些已经在名单中。也executeUpdate用于数据库写操作:

preparedStatement = 
  conn.prepareStatement("INSERT INTO Users(name, pass, type) VALUES (?,?,?)",
                ResultSet.TYPE_SCROLL_INSENSITIVE,  ResultSet.CONCUR_READ_ONLY);            
preparedStatement.setString(1, user.getNickName());
preparedStatement.setString(2, user.getPassword());
preparedStatement.setInt(3, type);
int rowCount = preparedStatement.executeUpdate();
于 2013-05-10T18:13:47.417 回答