今天在测试一个新的项目,在执行sql查询报表的时候。由于我的sql中带有%,导致在输出日志时报错“java.util.UnknownFormatConversionException: Conversion = '''。
经过分析发现:Java中如何让String.format正常处理%

1,代码示例:

System.out.println(String.format("where  name like % %s","Zhang san"));,

2,执行时报错:

java.util.IllegalFormatFlagsException

3,解决办法1:

使用%%对%进行转义

代码示例:

System.out.println(String.format("where  name like %% %s","Zhang san"));

正确执行时的输出结果:

where  name like % Zhang san

解决办法2:

System.out.println(String.format("where  name like %s %s","%","Zhang san"));

正确执行时的输出结果:

where  name like % Zhang san

其实不用看Conversion = ‘Y’,什么Conversion = ‘I’,Conversion = ‘F’ … 都是这个错误造成的。

第一次遇到这个错误,有点蒙,还查了很久,最后发现是:在格式化输出时,输出字符串的内容不能含有%。如果要输出%,必须进行转义,也就是使用%%代替%

但是我又不能直接修改sql,所以我采用的方式是在输出日志时把%替换成%%

举例:
我的sql是:String sql=“SELECT DATE_FORMAT(date(now()), ‘%Y%m%d%H%i’) AS time_id”

我的日志输出则应该是:Logutil.trace(“我是日志:”+sql.replace("%", “%%”));

解决办法其实很简单,这也是怪我基础知识不扎实,故记之,以后万万不可犯同样的错误。

最新文章

  1. Android 在线更新apk
  2. 小记,取GB2312汉字的首字母【转】
  3. Android: Receiving Data from the Send Intent,自己app注册系统分享
  4. C#中运算符的使用
  5. 关于新版本,iOS10的相关内容,兼容iOS 10 资料整理笔记
  6. oldboy s21day07(深浅拷贝及文件操作)
  7. C++单元测试gtest【搬砖】
  8. input中用中文输入法下的全角·替换英文输入法下的句号.
  9. Vs code 设置
  10. Linux tee命令详解
  11. 报错stale element reference: element is not attached to the page document结局方案
  12. 将 nginx 安装成 windows 的方法
  13. Unity3D研究院之将UI的点击事件渗透下去(转)
  14. windows7 64位机上配置支持GPU版(CUDA7.5)的OpenCV2.4.13操作步骤
  15. Https 请求工具(put,post,get)
  16. Composer 扩展包安装方法
  17. TensorFlow全新的数据读取方式:Dataset API入门教程
  18. 浏览器访问IPv6地址
  19. Struts2 第一个入门小案例
  20. 如何使用动画库animate.css

热门文章

  1. POJ--2112--Optimal Milking【Floyd+Dinic+二分答案】
  2. listView中adapter有不同的click事件的简单写法
  3. A server is already running. Check tmp/pids/server.pid.
  4. VC与JavaScript交互(一) ———— 怎样实现
  5. php后期静态绑定
  6. 树状数组(Binary Indexed Tree(BIT))
  7. sql语句获取本周、本月、本年数据
  8. <Android Framework 之路>Android5.1 Camera Framework(二)
  9. nginx高级-前端必会
  10. JavaScript 获取某个字符的 Unicode 码