如何使用 Java 中的 MySQL 在字符串文字中转义单引号 [英] How to escape single quote in string literal using MySQL from Java
本文介绍了如何使用 Java 中的 MySQL 在字符串文字中转义单引号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个包含 p_id
和 p_name
的 MySql 表 person_details
.现在,如果我想插入一条记录,其中 p_name 包含单引号 '
,我会以这种方式执行它-
I have a MySql table person_details
which contains p_id
and p_name
. Now, if I want to insert a record where p_name contains a single quote '
, I'd execute it this way-
插入person_details值(1, 'D\'souza');
现在,我正在尝试通过这种方式通过 java 代码执行相同的操作-
Now, I'm trying to execute the same through a java code this way-
插入person_details值(1, 'D\\'souza');
然后我得到 MySQLSyntaxErrorException.
and I get MySQLSyntaxErrorException.
有什么问题吗?
推荐答案
要直接回答您的问题,请将引号加倍.
To answer your question directly, double the quotes.
insert into person_details values (1, 'D''souza');
但我宁愿使用 PreparedStatement
参数化查询.
But I rather parameterized the query using PreparedStatement
.
以下是专业人士:
- 避免 SQL 注入
- 不需要使用单引号.
示例,
String str = "insert into person_details values (?, ?)";
query = con.prepareStatement(str);
query.setInt(1, 1);
query.setString(2, "D'souza");
query.executeUpdate();
- 使用准备好的语句
这篇关于如何使用 Java 中的 MySQL 在字符串文字中转义单引号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文