原因分析:Java中的String.format中是以百分号"%"作为占位符来实现格式化,此处select语句中like模糊查询要配合百分号使用,因此被程序解析为了占位符
解决思路:使用 %% 实现对 %的转义
sqlFormat = "select * from pt where date(%s) = %s,SecurityID like '600%%'";
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)
原因分析:Java中的String.format中是以百分号"%"作为占位符来实现格式化,此处select语句中like模糊查询要配合百分号使用,因此被程序解析为了占位符
解决思路:使用 %% 实现对 %的转义
sqlFormat = "select * from pt where date(%s) = %s,SecurityID like '600%%'";