mybatis配置文件解析错误解决方法
2019独角兽企业重金招聘Python工程师标准>>>
转:mybatis写mapper文件注意事项
xml中某些特殊符号作为内容信息时需要做转义,否则会对文件的合法性和使用造成影响
- < <
- > >
- & &
- ' '
- " "
在mapper文件中写sql语句时,为避免不必要的麻烦(如<等),建 议使用<![CDATA[ ]]>来标记不应由xml解析器进行解析的文本数据,由<![CDATA[ ]]>包裹的所有的内容都会被解析器忽略 <![CDATA[ sql语句 ]]>
- <select id="getAccountsByBranch" resultType="Account" parameterType="string">
- <![CDATA[SELECT * FROM t_acctreg_accounts where acctno < #{acctno}]]>
- </select>
将整个sql语句用<![CDATA[ ]]>标记来避免冲突,在一般情况下都是可行的,但是如果这样写
- <select id="getAccountErrorCount" resultType="int" parameterType="map">
- <![CDATA[
- select count(*) from t_acctreg_accounterror
- <where>
- <if test="enddate != null and enddate != ''">
- createdate <= #{enddate}
- </if>
- <if test="acctno != null and acctno != ''">
- AND acctno LIKE '%'||#{acctno}||'%'
- </if>
- </where>
- ]]>
- </select>
就会收到错误信息:
org.springframework.jdbc.UncategorizedSQLException: Error setting null parameter. Most JDBC drivers require that the JdbcType must be specified for all nullable parameters. Cause: java.sql.SQLException: 无效的列类型: 1111 ; uncategorized SQLException for SQL []; SQL state [99999]; error code [17004]; 无效的列类型: 1111; nested exception is java.sql.SQLException: 无效的列类型: 1111
这是由于该sql配置中有动态语句(where,if),where,if 条件不能放在<![CDATA[ ]]>中,否则将导致无法识别动态判断部分,导致整个sql语句非法.应该缩小范围,只对有字符冲突部分进行合法性调整
- <select id="getAccountErrorCount" resultType="int" parameterType="map">
- select count(*) from t_acctreg_accounterror
- <where>
- <if test="enddate != null and enddate != ''">
- <![CDATA[createdate <= #{enddate}]]>
- </if>
- <if test="acctno != null and acctno != ''">
- <![CDATA[AND acctno LIKE '%'||#{acctno}||'%']]>
- </if>
- </where>
- </select>
还有在向oracle插入数据时,mybatis3报Error setting null parameter. Most JDBC drivers require that the JdbcType must be specified for all nullable parameters,是由于参数出现了null值,对于Mybatis,如果进行操作的时候,没有指定jdbcType类型的参数,mybatis默认 jdbcType.OTHER导致,给参数加上jdbcType可解决(注意大小写)
http://code.google.com/p/mybatis/issues/detail?id=224&q=Error%20setting%20null%20parameter&colspec=ID
- <insert id="insertAccountError" statementType="PREPARED"
- parameterType="AccountError">
- INSERT INTO t_acctreg_accounterror(createdate,acctno, errorinfo)
- VALUES(#{createdate,jdbcType=DATE},#{acctno,jdbcType=VARCHAR},#{errorinfo,jdbcType=VARCHAR})
- </insert>
转载于:https://my.oschina.net/u/232879/blog/146337
mybatis配置文件解析错误解决方法相关推荐
- wireshark协议解析错误解决方法
起因: 由于wireshark能解析的协议太多,某些数据包会被错误的解析成别的协议 解决: 在被错误解析的分组上右键,选择协议首选项,disable 错误的协议,直至以正确的协议进行解析. 也要到上面 ...
- Android 下载 自动安装 解析错误,studio下载APK到手机提示解析错误解决方法
下载完Android studio,第一件事就是想写hello world,照着第一行代码,新建project,建立一个已经搭好框架的activity,make然后run,很快就执行完成,下图是在选择 ...
- outlook服务器响应错误,outlook 错误代码解析与解决方法
outlook错误代码解析与解决方法 一般错误: 0x800C0131和0x800C013E:Folders.dbx档案属性错误或损坏 解决方法:Folders.dbx为Outlook Express ...
- GetLastError()10013错误解决方法及错误列表
10013错误解决方法 10013错误为以一种访问权限不允许的方式做了一个访问套接字的尝试. 错误原因: 1.SOCKET socketRaw = socket(AF_INET,SOCK_RAW,IP ...
- mybatis配置文件解析
mybatis配置文件解析 mybatis核心配置文件`mybatis-config.xml文件. mybatis的配置文件包含了会深深影响mybatis行为的设置和属性信息. 能配置的内容: con ...
- gii无法访问 yii2_YII2框架访问gii、debug页面404的错误解决方法
之前在介绍Yii框架的时候就说过 Yii 支持 gii 功能, gii 去自动生成 Web 站点常用功能的代码,也就是我们经常说的 CURD 操作,增删改查.使用 gii 生成代码也是非常的简单,Gi ...
- html页面在ie上出现404怎么解决,ie浏览器网页上有错误解决方法详解
ie浏览器网页上有错误解决方法详解 最近网友反馈我的浏览器左下角总显示"网页上有错误",我已经修复过IE了,可是不管用.然后在浏览器上看不到网上的视频和图片的播放.在QQ空间上输入 ...
- java telephony jar_编译错误解决方法
首页板块列表刷机技术阅读帖子 编译错误解决方法 发布时间:2015-05-19 18:153回复.2072阅读 前言:关于Android4.4/CM11编译中遇到的一些错误,本人进行了整理.有需要的童 ...
- nginx在linux reload报错,nginx关于reload的两个错误解决方法,nginxreload
nginx关于reload的两个错误解决方法,nginxreload 解决Nginx: [error] open() "/usr/local/Nginx/logs/Nginx.pid 重新启动服务器, ...
最新文章
- 物联网协议对比(HTTP、websocket、XMPP、COAP、MQTT和DDS协议)
- php 生成等比例缩略图,PHP等比例生成缩略图
- 苹果电脑通过密钥对的方式登录linux系统
- Redis删除副本节点
- java scanner_Java Scanner nextLong()方法与示例
- c++两个vector合并_数据结构——算法初步(4)——合并排序算法
- python-数字数据类型-整数类型-浮点数类型-数据类型间的转换
- 运维堡垒机(跳板机)系统 python
- 2018年python工作好找吗-Python的发展状况-2018年
- Android ScrollView 实现整个界面变成列表
- zabbix3.2自动发现
- cocos studio 基本功能添加——场景(Scene)
- 《红周刊》独家对话芒格:你可以随自己喜欢一辈子不理性,那必然承受糟糕结果
- UKEY开发,vue+websocket实现用户登录UKEY认证
- layer弹出层自适应高度,垂直水平居中
- 爬虫|wallhere壁纸批量下载
- Vmware安装Centos及Linux的介绍,命令
- RPA学习天地:艺赛旗RPA高阶培训(一)产品基础架构
- 不懂就问:PHP浮点数中的e和E分别表示什么?
- java.有空值的对象序列化_java – 如何防止Map中的空值和bean中的空字段通过Jackson序列化...
热门文章
- ORACLE中的两个概念:user和schema的区别和联系
- eclipse 中 构建路径下的 order and export 是干什么用
- Oracle中table变量在JDBC中的运用
- 写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的消息。
- Tornado-Lesson05-模版继承、函数和类导入、ui_methods和ui_modules
- 《软件工程》课程设计总结
- gulp与grunt对比
- Apache-Tomcat的安装配置
- static_cast, dynamic_cast, reinterpret_cast, const_cast区别比较
- js实现浏览器后退页面刷新