如何使用 Java 中的 MySQL 在字符串文字中转义单引号 [英] How to escape single quote in string literal using MySQL from Java

查看:119
本文介绍了如何使用 Java 中的 MySQL 在字符串文字中转义单引号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个包含 p_idp_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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆