mybatis转义反斜杠_mybatis参数格式化异常:NumberFormatException: For input string:xx

使用mybatis注解开发的时候,总会遇到很多问题,但是mybatis的注解并不是那么的美好,一些问题或者错误根本不能给出准确的定位,有时候,甚至会给出Unknow Source的错误,获取就是一个关闭标签没有关上。此类问题,在xml配置中,mybatis做的比较好,所以,官方也不是很放心其注解,建议使用xml。

1. 错误日志

[16/08/16 02:15:40:040 CST] http-nio-8080-exec-4 ERROR filter.ExceptionFilter: [DUBBO] Got unchecked and undeclared exception which called by 127.0.0.1. service: cn.test.web.service.ShareService, method: getShareChannelStInfoList, exception: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:

### Error querying database. Cause: java.lang.NumberFormatException: For input string: "2016-08-11"

### Cause: java.lang.NumberFormatException: For input string: "2016-08-11", dubbo version: 2.8.4, current host: 127.0.0.1

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:

### Error querying database. Cause: java.lang.NumberFormatException: For input string: "2016-08-11"

### Cause: java.lang.NumberFormatException: For input string: "2016-08-11"

at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:76)

at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:399)

at com.sun.proxy.$Proxy32.selectList(Unknown Source)

at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:205)

at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:122)

at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:64)

at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:53)

at com.sun.proxy.$Proxy57.getShareChannelStInfo(Unknown Source)

at cn.test.web.repository.ShareStInfoRepo.getShareChannelList(ShareStInfoRepo.java:37)

at cn.test.web.impl.ShareServiceImpl.getShareChannelStInfoList(ShareServiceImpl.java:72)

at com.alibaba.dubbo.common.bytecode.Wrapper19.invokeMethod(Wrapper19.java)

at com.alibaba.dubbo.rpc.proxy.javassist.JavassistProxyFactory$1.doInvoke(JavassistProxyFactory.java:46)

at com.alibaba.dubbo.rpc.proxy.AbstractProxyInvoker.invoke(AbstractProxyInvoker.java:72)

at com.alibaba.dubbo.rpc.protocol.InvokerWrapper.invoke(InvokerWrapper.java:53)

at com.alibaba.dubbo.rpc.filter.ExceptionFilter.invoke(ExceptionFilter.java:64)

at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)

at com.alibaba.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:75)

at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)

at com.alibaba.dubbo.rpc.filter.TimeoutFilter.invoke(TimeoutFilter.java:42)

at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)

at com.alibaba.dubbo.rpc.protocol.dubbo.filter.TraceFilter.invoke(TraceFilter.java:78)

at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)

at com.alibaba.dubbo.rpc.filter.ContextFilter.invoke(ContextFilter.java:70)

at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)

at com.alibaba.dubbo.rpc.filter.GenericFilter.invoke(GenericFilter.java:132)

at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)

at com.alibaba.dubbo.rpc.filter.ClassLoaderFilter.invoke(ClassLoaderFilter.java:38)

at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)

at com.alibaba.dubbo.rpc.filter.EchoFilter.invoke(EchoFilter.java:38)

at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)

at com.alibaba.dubbo.rpc.proxy.InvokerInvocationHandler.invoke(InvokerInvocationHandler.java:52)

at com.alibaba.dubbo.common.bytecode.proxy9.getShareChannelStInfoList(proxy9.java)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:137)

at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:288)

at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:242)

at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:229)

at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:356)

at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:179)

at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:220)

at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)

at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

at com.alibaba.dubbo.rpc.protocol.rest.DubboHttpServer$RestHandler.handle(DubboHttpServer.java:86)

at com.alibaba.dubbo.remoting.http.servlet.DispatcherServlet.service(DispatcherServlet.java:64)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)

at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)

at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)

at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528)

at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1099)

at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)

at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520)

at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

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

2.错误代码

这段代码,就是mybatis的动态查询,就是组装sql语句。但是,这里必须注意一个问题,那就是startd和endd,这两个变量是ShareChannelStInfo中的私有变量,是String类型的。

错误的引起,是startd != 0和endd != 0引起的,原因给的是字符串,却拿一个数字比较,mybatis会做一些转化,结果在数字格式化时发生异常。

@Select("

" select * from `test`.`share_channel_st_info`" +

" where 1 = 1" +

" " +

" " +

" and channel=#{channel}" +

" " +

" " +

" and channel=0" +

" " +

" " +

" " +

" and time >=#{startd}" +

" " +

" and time <=#{endd}" +

" " +

" " +

" order by ${orderby}" +

" " +

" " +

" order by time desc" +

" " +

" " +

" limit #{offset}, #{limit}" +

"")

List getShareChannelStInfo(ShareChannelStInfo info);

3. 解决错误

加单引号是无法解决的,比如:startd != '0',此时,mybatis认为拿一个字符串(String)和一个字符(char)比较,也会报错。

因此,有几种方法可以解决此问题:

一是:转成字符串:'0'.toString()

@Select("

" select * from `test `.`share_channel_st_info`" +

" where 1 = 1" +

" " +

" " +

" and channel=#{channel}" +

" " +

" " +

" and channel=0" +

" " +

" " +

" " +

" and time >=#{startd}" +

" " +

" and time <=#{endd}" +

" " +

" " +

" order by ${orderby}" +

" " +

" " +

" order by time desc" +

" " +

" " +

" limit #{offset}, #{limit}" +

"")

List getShareChannelStInfo(ShareChannelStInfo info);

二是:加转义实体字符串引号"

三是:外部单双引号交换:

注意:在xml配置中,使用第三种方式,不需要添加反斜杠("\"),

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/512449.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何避免出现SQL注入漏洞

简介&#xff1a; 本文将针对开发过程中依旧经常出现的SQL编码缺陷&#xff0c;讲解其背后原理及形成原因。并以几个常见漏洞存在形式&#xff0c;提醒技术同学注意相关问题。最后会根据原理&#xff0c;提供解决或缓解方案。 作者 | 阿里云安全团队 来源 | 阿里技术公众号 ‍‍…

「CSDN 2021年度 IT 技术影响力之星评选」活动报名倒计时!

“CSDN 2021年度IT技术影响力之星评选”活动自2021年12月6日启动以来受到了行业各界的关注以及企业和个人的积极响应&#xff0c;截止目前&#xff0c;已收到上千份参评报名。本次评选活动的第一阶段——企业/个人参与提名将于2022年1月30日结束&#xff0c;以真实数据为基础&a…

技术人员的一点产品思维思考

简介&#xff1a; 作为一线的开发人员&#xff0c;大家是不是都经历过和产品吵得不可开焦&#xff0c;甚至最后谁也无法说服谁&#xff0c;最后只能由老板出面解决的经历。而大多数情况老板还真能以某种方法去解决&#xff0c;并且是一个双方都能接受的方案。然而这不全是因为老…

北语18春《计算机网络技术》作业4,北语18春《计算机网络技术》作业4

------------------------------------------------------------------------------------------------------------------------------ (单选题) 1: 在数据链路层对局域网进行扩展使用的是&#xff3f;,它根据MAC帧的目的地址对收到的帧进行转发。A: 转发器B: 集线器C: 网桥D:…

chrome插件上传csv_Chrome插件推荐

从 IE 到 Chrome &#xff0c;期间使用了很多浏览器&#xff0c;搜狗、360、2345、傲游等等&#xff0c;最后选择了 Chrome &#xff0c;一直到现在&#xff0c;在使用的过程中发现一些好用的插件&#xff08;扩展程序&#xff09;&#xff0c;在此推荐给大家。PS&#xff1a;使…

OpenKruise v0.10.0 版本发布:新增应用弹性拓扑管理、应用防护等能力

简介&#xff1a; 阿里云开源的云原生应用自动化管理套件、CNCF Sandbox 项目 -- OpenKruise&#xff0c;今天发布 v0.10.0 新版本&#xff0c;这也会是 OpenKruise v1.0 之前的最后一个 minor 版本。 本文将带你一览 v0.10.0 的新变化&#xff0c;其中新增的 WorkloadSpread、…

极验创始人吴渊:恶意流量威胁新趋势,洞察网络黑产3大核心本质

天下没有免费的午餐&#xff0c;更没有免费的流量。以电商为例&#xff0c;最疯狂的时候&#xff0c;某电商平台单个获客成本接近400元。作为互联网的稀缺资源&#xff0c;流量的成本不断冲击着企业运营红线。 而就当企业盯着成本、守着转化时&#xff0c;网络黑产已完成对平台…

来啊,来魔改啊,人生重开模拟器一键托管上线

简介&#xff1a; 云开发平台将“人生重开模拟器”fork到了云开发的仓库了&#xff0c;用户只需要直接fork到自己的仓库以后就可以在云开发平台上进行快速魔改和一键部署&#xff0c;绑定自己的域名就能够让小伙伴们一起来感受你的魔改创意哦。 人生无法重来&#xff0c;游戏可…

内大计算机学院,内蒙古大学:计算机学院

计算机学院是全区高等学校中最早建立的专门培养计算机专业技术中高级人才的教学与科研单位。学院由计算机科学系、软件工程系、信息工程管理系、计算(实验)中心等教学单位组成&#xff0c;设有计算机网络与信息安全、人工智能与蒙古文信息处理、计算机软件与理论和管理科学与工…

python动态类型的坑_python进阶教程之动态类型详解

动态类型(dynamic typing)是Python另一个重要的核心概念。我们之前说过&#xff0c;Python的变量(variable)不需要声明&#xff0c;而在赋值时&#xff0c;变量可以重新赋值为任意值。这些都与动态类型的概念相关。动态类型在我们接触的对象中&#xff0c;有一类特殊的对象&…

从边缘到云,万物互联时代Aruba的技术经

作者 | 宋慧 出品 | CSDN 云计算 网络&#xff0c;是重要的 IT 基础设施之一。在 2021 年底&#xff0c;国际分析机构 Gartner 发布了本年度企业有线和无线局域网基础设施魔力象限&#xff0c;HPE 旗下公司 Aruba 连续第十六年被列入领导者象限。更早一些的 2021 年 Gartner 广…

Apache Hudi 在 B 站构建实时数据湖的实践

简介&#xff1a; B 站选择 Flink Hudi 的数据湖技术方案&#xff0c;以及针对其做出的优化。 本文作者喻兆靖&#xff0c;介绍了为什么 B 站选择 Flink Hudi 的数据湖技术方案&#xff0c;以及针对其做出的优化。主要内容为&#xff1a; 传统离线数仓痛点数据湖技术方案Hudi…

计算机谭音乐同桌的你,同桌的你_Ava_clover_新浪博客

写这个是因为杨傻傻同学那天让我看他听得那首歌《同桌的你》让本人感受颇多虽然开玩笑的问他“我是你的同桌吗&#xff1f;”但是&#xff0c;我还是很感谢杨傻傻(虽然他非要喊我喊他杨哥&#xff0c;但是我还是喜欢这个名字)回想自己所有的同桌但是真正能够记住的其实也就只有…

表格存储 SQL 查询多元索引

简介&#xff1a; 多元索引是表格存储产品中一个重要的功能&#xff0c;多元索引使用倒排索引技术为表格存储提供了非主键列上的快速检索功能&#xff0c;另外也提供了统计聚合功能。表格存储近期开放了SQL查询功能&#xff0c;SQL引擎默认从原始表格中读取数据&#xff0c;非主…

oom 如何避免 高并发_【面试】如何避免OOM的发生

小编基础薄弱&#xff0c;发的内容不算是抄袭&#xff0c;但也基本都是借鉴&#xff0c;若有不足的地方还望点评。内存泄漏(Out Of Memory)俗称OOM&#xff0c;翻了网上一些资料&#xff0c;发生OOM的情况大致有两种&#xff0c;一种是Activity当中对象的引用故障&#xff0c;另…

好难啊……一个 try-catch 问出这么多花样

作者 | 阿Q来源 | 阿Q说代码刚刚面试回来的B哥又在吐槽了&#xff1a;现在的面试官太难伺候了&#xff0c;放着好好的堆、栈、方法区不问&#xff0c;上来就让我从字节码角度给他分析一下try-catch-finally&#xff08;以下简称TCF&#xff09;的执行效率.....今天我们就来好好…

数据是如何被保护的?高质量存储告诉你

简介&#xff1a; 作为关键信息基础设施运营者&#xff0c;阿里云提供了全方位的数据安全保护方案。今天&#xff0c;我们就从数据存储的角度来聊一聊数据是如何被保护的。 原文链接 本文为阿里云原创内容&#xff0c;未经允许不得转载。

无法启动此程序因为计算机丢失dtlui,电脑缺少dll文件_电脑开机总是出来DLL文件丢失,...

最佳答案如果您的电脑开机出现“加载C&#xff1a;/WIND/SYSTEM32.UKWIEG96.DLL时出错”之类的加载dll文件出错或提示dll文件丢失&#xff0c;但又可以正常进入系统&#xff0c;那么这篇文章或许可以给您带来解决办法。碰到这种情况我们可以肯定是dll因为某些原因出错或丢失了&…

findler mac 隐藏文件_fiddler使用实例之----------查找隐藏的真实地址!!!!

这个教程讲解下如何用fddler &#xff0c;找到页面的真是地址同样也是可以找到页面隐藏的内容&#xff0c;两者原理是一样的&#xff0c;在页面能看到的信息&#xff0c;页面源代码却看不到&#xff0c;也就是这样的信息其实并不在这个页面上&#xff0c;而是通过一些方法调用来…

Nacos 开源、自研、商业化三位一体战略解读

简介&#xff1a; Nacos作为整个阿里云原生三位战略中的核心组成部分&#xff0c;我们在2018年以Configserver/VIPServer/Diamond为基础通过Nacos开源输出阿里十年沉淀的注册中心和配置中心能力&#xff0c;并且快速成为国内首选。并且通过云产品MSE以BaaS模式输出解决方案能力…