带特殊字符(“\n”、“\s”和“\t”)的jdbc查询插入

v64noz0r  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(721)

我有原始的插入查询,比如

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

得到 SqlException 在尝试通过jdbc插入时,如果我通过mysql命令提示符(console)插入,则相同的插入查询正在工作。
由于名称字段中有特殊字符(“\n”),jdbc insert查询失败。
那么如何克服并插入带有\n的名称呢?

xwbd5t1u

xwbd5t1u1#

最干净的方法是根本不使用原始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();

相关问题