JDBC查询插入特殊字符("\N"、"\S"和"\T")

JDBC query insert with special character ("\N", "\S" and "\T")

我有像这样的原始插入查询

insert into sample(id, name) values(1, 'text \N\');

尝试通过 jdbc 插入时获取 SqlException,但如果我通过 mysql 命令提示符(控制台)插入,则相同的插入查询正在运行。

jdbc 由于名称字段中的特殊字符 ("\N"),插入查询失败。

那么如何克服插入带\N的名字呢?

最干净的方法是根本不使用原始 SQL 查询。如果正如您所说,您从其他进程收到名称,那么它可能在 String 变量(或 属性 或类似变量)中,因此您可以简单地使用 参数化查询 执行插入:

// example data
int theId = 1;
String theName = "the name you received from somewhere else";
//
PreparedStatement ps = conn.prepareStatement("INSERT INTO sample (id, name) VALUES (?, ?)");
ps.setInt(1, theId);
ps.setString(2, theName);
ps.executeUpdate();