H2 db插入带引号的数据引发异常

时间:2019-08-01 08:42:09

标签: mysql h2

我正在尝试用内存h2数据库(mysql模式)替换我的普通msqldb以进行单元测试。请参阅表格说明

getfiltereddata(data) {
    var url = `/user?filtereddata=true`;
    data.forEach(element => {
    url = url + `&` + element.key + `=` + element.value;
}); //of course i have to check if valuie is not ''

然后,我尝试在其中插入 longtext 字段。在 mysql 中,我使用\对其进行了转义,并且insert语句运行良好,但是在 h2 db 中,它的抛出是在异常之后。

插入哑表值(6,'ad \'s','def')

'CREATE TABLE `dummyTable` (
  `id` int(11) NOT NULL,
  `value1` longtext,
`value2` longtext,
  PRIMARY KEY (`id`),
    ) ENGI

NE=InnoDB DEFAULT CHARSET=utf8'

我尝试了另一个插入语句

插入哑表值(6,“ ad \'s”,“ df”)

但是它也失败了,但出现以下异常

org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "insert  into dummyTable values (6,'ad's','df[*]')"; SQL statement:
insert  into dummyTable values (6,'ad's','df') [42000-199]
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:451)
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:427)
    at org.h2.message.DbException.get(DbException.java:205)
    at org.h2.message.DbException.get(DbException.java:181)
    at org.h2.message.DbException.getSyntaxError(DbException.java:229)
    at org.h2.command.Parser.getSyntaxError(Parser.java:989)
    at org.h2.command.Parser.checkRunOver(Parser.java:5129)

请问有人可以在h2 db中怎么做

1 个答案:

答案 0 :(得分:0)

我通过将单引号加倍来使其工作。

例如: 插入dummyTable值(6,'ad's','def')

此帖子Inserting a long text in H2 Database from an SQL script的帮助