Java API 使用like做模糊查询报错

sqlFormat = "select * from pt where date(%s) = %s,SecurityID like  '600%'";
conn.run(String.format(sqlFormat,arg));

提示

java.util.UnknownFormatConversionException: Conversion = '''

at java.util.Formatter.checkText(Formatter.java:2579)

at java.util.Formatter.parse(Formatter.java:2565)

at java.util.Formatter.format(Formatter.java:2501)

at java.util.Formatter.format(Formatter.java:2455)

at java.lang.String.format(String.java:2940)

at com.wyn.read.QueryThread.run(QueryThread.java:104)

at java.lang.Thread.run(Thread.java:748)

请先 登录 后评论

1 个回答

Yingnan Wang

原因分析:Java中的String.format中是以百分号"%"作为占位符来实现格式化,此处select语句中like模糊查询要配合百分号使用,因此被程序解析为了占位符

解决思路:使用 %% 实现对 %的转义

sqlFormat = "select * from pt where date(%s) = %s,SecurityID like  '600%%'";
请先 登录 后评论