如何使用Java中的MySQL从字符串文字中删除单引号

Alw*_*ner 6 java mysql

我有一个person_details包含p_id和的MySql表p_name.现在,如果我想插入一个p_name包含单引号的记录',我会以这种方式执行它 -

insert into person_details values (1, 'D\'souza');

现在,我试图通过这种方式通过java代码执行相同的操作 -

insert into person_details values (1, 'D\\\'souza');

我得到MySQLSyntaxErrorException.

哪里不对了?

Joh*_*Woo 11

要直接回答您的问题,请将引号加倍.

insert into person_details values (1, 'D''souza');
Run Code Online (Sandbox Code Playgroud)

但我宁愿使用参数化参数PreparedStatement.

以下是PRO:

  • 避免SQL注入
  • 不需要使用单引号.

例,

String str = "insert into person_details values (?, ?)";
query = con.prepareStatement(str);
query.setInt(1, 1);
query.setString(2, "D'souza");
query.executeUpdate();
Run Code Online (Sandbox Code Playgroud)