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

'@'的转义字符--JDBC?

陈霄
2023-03-14

我正在对MySQL表进行批量插入:

insert into table1 (field1, field2) values("aa@gmail.com", "f2 value"), ("cc@gmail.com", "another f2 here");
pStat.addBatch();
pStat.executeBatch();

提亚。

进一步注意:上面的insert查询直接在MySQL上运行良好,中间没有JDBC。还要注意:当JDBC本身使用pstat.getstring(“aa@gmail.com”)设置参数时,这不是一个问题;--因此批处理execn是一个解决方案。

共有1个答案

邵阳
2023-03-14

尝试使用PreparedStatement。它自动解析特殊字符,避免SQL注入。

String queryStr = "insert into table1 (field1, field2) values(?, ?);"
try {
    PreparedStatement preparedStatement = conn.prepareStatement(queryStr);
    preparedStatement.setString(1, "aa@gmail.com");
    preparedStatement.setString(2, "f2 value");
    preparedStatement.executeUpdate();
} catch (SQLException e) {
    // Error
} finally {
    if (preparedStatement != null) {
        preparedStatement.close();
    }
    if (conn != null) {
        conn.close();
    }
}

更多示例:https://www.mkyong.com/jdbc/jdbc-preparestatement-example-insert-a-record/

 类似资料:
  • 问题内容: 为了回答这个问题,我设法通过转义反斜杠来使字符串成为转义字符。 当我尝试将其概括为转义所有转义的字符时,它似乎无能为力: 但是对于特定的转义字符使用相同的方法,它确实起作用: 有一般的方法可以做到这一点吗?应包括,,,等。 问题答案: 使用r’text’将字符串定义为raw,如下面的代码所示:

  • 反斜线()用于插入在 Markdown 语法中有特殊作用的字符。 这是用来 *演示* 的 _文本_ 这是用来 *演示* 的 _文本_ 这是用来 演示 的 文本 这是用来 *演示* 的 _文本_ 这些字符包括: ` * _ {} [] () # + - . !

  • 在《 Python字符串》一节中我们曾提到过转义字符,就是那些以反斜杠 开头的字符。 ASCII 编码为每个字符都分配了唯一的编号,称为编码值。在 Python 中,一个 ASCII 字符除了可以用它的实体(也就是真正的字符)表示,还可以用它的编码值表示。这种使用编码值来间接地表示字符的方式称为 转义字符(Escape Character)。 如果你对 ASCII 编码不了解,请猛击: ASCII

  • 本文向大家介绍VBA 转义字符,包括了VBA 转义字符的使用技巧和注意事项,需要的朋友参考一下 示例 VBA语法要求在字符串中包含一个字符串字面量",因此,当您的字符串需要包含引号时,您需要对"字符进行转义/前缀,"以便VBA理解您打算将""其解释为"字符串。            

  • 本文向大家介绍Java转义字符,包括了Java转义字符的使用技巧和注意事项,需要的朋友参考一下 示例 通常 要使用正则表达式中的特定字符(?+|等),按其字面意思,必须对其进行转义。在常规正则表达式中,这是通过反斜杠完成的\。但是,由于它在Java字符串中具有特殊含义,因此必须使用双反斜杠\\。 这两个示例不起作用: 这个例子有效 分割管道分隔字串 这不会返回预期的结果: 这将返回预期结果: 转义

  • 有时候,当需要引入无效的CSS语法或Less不能识别的字符,就需要使用转义字符。此时,就可以在字符串前面加一个 ~,并将需要转义的字符串放在 "" 中。格式为: ~"anything" 在编译时,任何包含在 ~"anything" 中的内容,将会原封不动的输出到编译后的CSS文件中。如,以下Less代码: .weird-element {   content: ~"^//* some horri