0

我在 Java 程序中编写了以下代码。

public int insertRecord()
       {

connection=PersistentieController.getInstance().getConnection();

int resultaat = 0;

String sql ="INSERT INTO TestDb (Nr Dossier, Année) VALUES (?,?)";

          try 
          {
             pstatement = initStatement(connection, sql);
             pstatement.setString(1, "9999");            
             pstatement.setInt(2, 2012);

             resultaat = pstatement.executeUpdate(); 
             pstatement.close();

          } //einde try
          catch ( SQLException sqlException ){
              sqlException.printStackTrace();

          }  

          return resultaat;

       } //einde insert()

我收到语法错误。我检查了我没有使用保留字。有任何想法吗?谢谢。

4

4 回答 4

0

您已经转义了列名(带有空格,例如Nr Dossier)。

如果您使用的是MySQL ,请使用反引号,

INSERT INTO TestDb (`Nr Dossier`, `Année`) VALUES (?,?)

如果您使用的是SQLServerMS Access ,则使用括号,

INSERT INTO TestDb ([Nr Dossier], [Année]) VALUES (?,?)
于 2012-09-25T09:10:05.573 回答
0

在这行代码中 String sql ="INSERT INTO TestDb (Nr Dossier, Année) VALUES (?,?)"; 您提到的列名Nr Dossier是无效的列名。

于 2012-09-25T09:10:56.160 回答
0

我建议使用它,因为您的“Nr Dossier”字段中有一个空格。

您没有提及您正在使用哪种 SQL 类型,但是 [] 或 ` 标记通常可以解决此问题。

于 2012-09-25T09:10:57.043 回答
0

使用单引号内的字符串值:

String sql ="INSERT INTO TestDb ('Nr Dossier', 'Année') VALUES (?,?)";
于 2012-09-25T09:13:45.687 回答