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();
我有像这样的原始插入查询
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();