Spring Boot H2测试中SQL插入换行失效问题求助
解决H2数据库插入脚本中换行符不生效的问题
方法1:使用字符拼接函数生成换行
直接用CHR(10)(对应LF换行符)拼接字符串,H2会将其解析为实际换行:
insert into table_name (id, text) values (100, 'New Line' || CHR(10) || 'New line2');
如果需要兼容Windows的CRLF换行格式,可替换为CHR(13) || CHR(10)。
方法2:开启H2的转义字符串语法
两种方式可以启用H2对转义字符的解析:
- 在插入脚本开头先执行配置命令:
之后原插入语句中的SET ESCAPE_STRING_SYNTAX=TRUE;\n会被自动解析为换行。 - 或者修改Spring Boot的H2连接URL,添加配置参数:
spring.datasource.url=jdbc:h2:mem:testdb;ESCAPE_STRING_SYNTAX=TRUE
方法3:直接在脚本中写入实际换行
将插入语句的字符串内容直接换行编写,H2会保留脚本中的实际换行:
insert into table_name (id, text) values (100, 'New Line New line2');
注意脚本文件本身的换行符格式(LF/CRLF)会影响最终存储的换行类型。
内容的提问来源于stack exchange,提问作者Sha
相关产品推荐
相关产品推荐

