当前位置: 首页 > 知识库问答 >
问题:

PreparedStatement错误sqlServer使用占位符java插入值

贺乐意
2023-03-14

我正试图使用Java中的一条准备好的语句在数据库中插入信息。我使用了占位符和设置字符串来避免SQL注入,但我一直有相同的错误:靠近“?”的Sytax不正确有人知道我做错了什么吗?这是我的代码:

public void insert(MyObject myObject) throws Exception {
        String sqlInsertStatement = "INSERT INTO Objects([Name]) VALUES( ? );";
        PreparedStatement sqlPreparedStatement = DatabaseContext.getInstance().getConnection().prepareStatement(sqlInsertStatement);
        sqlPreparedStatement.setString(1, myObject.getName());
        int id = sqlPreparedStatement.executeUpdate(sqlInsertStatement, Statement.RETURN_GENERATED_KEYS); 

我做了很多尝试,但都没有成功,连接到数据库的用户也有读写权限。

非常感谢你的回答!

共有1个答案

熊烨
2023-03-14

必须指明参数的数量,如:?1.2.3.N

尝试:

String sqlInsertStatement = "INSERT INTO Objects([Name]) VALUES( ?1 );";
 类似资料:
  • 问题内容: 我有以下PHP PDO语句: 关联数组在哪里。我已经仔细检查了名称,但我不明白为什么会出现以下错误: 我犯了什么愚蠢的错误? 问题答案: 您的语句所绑定的占位符必须完全相同,且不能多于或少于。请参阅文档,其内容为“您不能绑定的值不能超过指定的值”。 您需要准备参数以完全匹配您的绑定。如果正确安排阵列,这很容易。我通常将其包装在一个函数中,该函数还将处理前缀,如下所示: 这样的抽象的好处

  • 问题内容: 我想使用Java一次将多行插入MySQL表中。行数是动态的。过去我在做… for (String element : array) { myStatement.setString(1, element[0]); myStatement.setString(2, element[1]); } 我想对此进行优化,以使用MySQL支持的语法: INSERT INTO table (col1,

  • 我试图使用servlet将行插入到表中,当尝试使用语句(使用insertQuery1和insertQuery2)进行插入时,它执行良好,但当使用preparedstatment(使用insertPrepQuery)执行时,它抛出SQL语法错误。代码: 错误:

  • 我有简单的seq2seq模型: 我正在尝试创建自己的度量标准: 如果我尝试用这个度量编译模型,我会得到一个错误“您必须为占位符张量提供一个值”,并显示以下消息: 但以下代码运行良好(不会产生任何异常): 你能解释一下那个例外是什么意思吗?我以为和在做同样的事情。我是NNs和keras的新手,所以我可能看不到一些明显的东西。我在stackoverflow上看到了类似的问题,但没有找到适合我情况的答案

  • 问题内容: 我尝试了几种方法,但是都没有用。有谁知道解决这个问题的妙招? 更新:在chrome中不起作用。只是文本区域的宽度。 问题答案: 您可以做的是将文本添加为,这要注意换行符。 然后,您可以将其移除,然后将其重新应用(如果为空)。像这样 不是纯CSS也不 干净, 但是可以解决问题。

  • 类型 Glide允许用户指定三种不同类型的占位符,分别在三种不同场景使用: placeholder error fallback 占位符(Placeholder) 占位符是当请求正在执行时被展示的 Drawable 。当请求成功完成时,占位符会被请求到的资源替换。如果被请求的资源是从内存中加载出来的,那么占位符可能根本不会被显示。如果请求失败并且没有设置 error Drawable ,则占位符将