mybatis 开发中遇到的问题(一)
来源:互联网 发布:微信淘宝推广怎么做的 编辑:程序博客网 时间:2024/05/14 23:15
1、sql中存在分号“;”问题:org.apache.ibatis.binding.BindingException: Parameter ‘logisticId’ not found. Available parameters are [logisticsId, param1, param2, type]
<select id="selectByType" resultMap="BaseResultMap" parameterType="java.lang.String" > select <include refid="Base_Column_List" /> from WL_INDEX_ADVERT where TYPE = #{type,jdbcType=VARCHAR} ORDER BY SORT ASC;<!--不能写分号,因为他们底层拼接了sql--> </select>
2、问题:mybatis 空指针异常:忘记写#,自己检查很难发现
AND TRUE_NAME like '%'||{sysUser.trueName,jdbcType=VARCHAR}||'%' AND TRUE_NAME like '%'||#{sysUser.trueName,jdbcType=VARCHAR}||'%'
3、问题:The content of elements must consist of well-formed character data or markup.
CDATA
分析:出现这个问题是因为sql中使用了”<”“>”等,不允许在XML出现的符号
方案:
<![CDATA[ ]]> 标记避免Sql中与xml规范相冲突的字符对xml映射文件的合法性造成影响 如:<![CDATA[price_from >= #{price_from}]]>因为这个是xml格式的,所以不允许出现类似“>”这样的字符,但是都可以使用<![CDATA[ ]]>符号进行说明,将此类符号不进行解析 你的可以写成这个: mapper文件示例代码<![CDATA[ when min(starttime)<='12:00' and max(endtime)<='12:00' ]]> < < > > <> <> & & ' ' " "
4、问题:java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for com.hc360.logistics.dao.ShopServiceMapper.selectByLogisticsId
答案:没有shopServiceMapper.xml 或是 shopServiceMapper.xml 中没有id为selectByLogisticsId 的sql
5、问题:
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: java.lang.reflect.UndeclaredThrowableException### The error may exist in file [D:\workSpace\cm\src\main\webapp\WEB-INF\classes\mybatis\mapper\SerMapper.xml]### The error may involve defaultParameterMap### The error occurred while setting parameters### Cause: java.lang.reflect.UndeclaredThrowableException
答案:在分页插件中查询总记录数时,出的错,它会把第一个select 替换掉,导致出的错
代码: mybatis分页插件: PagingStatementHandlerInterceptor intercept()方法代码片段: int idx = getFromIndex(newCountSql); newCountSql = "select count(*) as cnt " + newCountSql.substring(idx); sql: select count(*) as cnt from sys_user su WHERE su.Id=122 union SELECT * from sys_user su WHERE su.Id>=618
方案: select * from ( SELECT * from sys_user su WHERE su.Id=122 union SELECT * from sys_user su WHERE su.Id>=618 ) order by id
阅读全文
0 0
- mybatis 开发中遇到的问题(一)
- mybatis开发过程中遇到的问题
- Opencv开发中遇到的问题一
- android开发中遇到的问题【一】
- CE开发中可能遇到的问题(一)
- CE开发中可能遇到的问题(一)
- VC 开发中遇到的问题记录(一)
- Web开发中遇到的数据传递问题(一)
- android蓝牙开发过程中遇到的问题(一)
- mybatis中遇到的问题--mybatis.xml
- Mybatis(问题一)开发过程中常见的问题
- 编程中遇到的问题(一)
- dubbo中遇到的问题(一)
- oj中遇到的问题(一)
- 学生中遇到的问题(一)
- iOS开发中遇到的问题整理 (一)
- android 开发中会遇到的问题(一)
- Android开发中遇到的问题集合(一)
- ssh 公钥私钥认证原理
- org.hibernate.AnnotationException: Associations marked as mappedBy must not define database mappings
- 【Linux】模拟实现sleep函数
- 远程主机强迫关闭了一个现有的连接
- Innodb中的事务隔离级别和锁的关系
- mybatis 开发中遇到的问题(一)
- react-表单
- Leetcode--231、Power of Two
- H5制作饼状图
- linux 内核学习----------模块(LKM:loading kernel module)
- Kotlin学习笔记——标准库kotlin.io / java.io.File
- Activity状态保存
- 33 linux服务管理
- MongoDB和Redis区别