EXCEPTION-IBATIS
CreateTime--2016年8月23日08:44:03
Author:Marydon
ibatis的sqlMap的xml文件配置出现的异常信息及解决方案
声明:异常类文章主要是记录了我遇到的异常信息及解决方案,解决方案大部分都是百度解决的,(这里只是针对我遇到的做个汇总),特此声明!
异常一
Cause: java.sql.SQLException: Invalid parameter object type. Expected 'com.entity.User' but found 'java.util.HashMap'.
ibatis配置问题
<parameterMap class="User" id="userMap">
<parameter property="userId"/>
<parameter property="userName"/>
<parameter property="userPass"/>
<parameter property="sex"/>
</parameterMap>
解决方案:
将class的值改为java.util.Map
Map对象的键必须和数据库中表的字段名保持一致,否则报错;
注意:
ibatis/mybatis可以自动将Map对象的键值与数据库中列名与该列的值对应起来
异常二
Caused by: java.sql.SQLException: ORA-00933: SQL 命令未正确结束
异常三
There is no READABLE property named 'userId' in class 'java.lang.String'
<!--
动态查询,查询所有的用户信息;根据id查询用户信息;根据姓名进行模糊查询 三合一
-->
当查询姓名时,出现异常;原因:只运行userId的sql语句,无法进入userName
ibatis配置问题
<select id="getUser" resultClass="User">
select * from user2
<dynamic prepend="where">
<isNotEmpty prepend="and" property="value">
userId=#value#
</isNotEmpty>
<isNotEmpty prepend="and" property="value">
userName like '%$value$%'
</isNotEmpty>
</dynamic>
</select>
解决方案:
1. 传参使用Map对象,将userId和userName封装到Map对象中再将Map传进去(虽然只传其中一个参数,也必须如此);
2.配置Map对象与实体类的映射关系;
3.指定传入参数类型: parameterMap="userMap"
<select id="getUser" resultClass="User" parameterMap="userMap">
select * from user2
<dynamic prepend="where">
<isNotEmpty prepend="and" property="value">
userId=#value#
</isNotEmpty>
<isNotEmpty prepend="and" property="value">
userName like '%$value$%'
</isNotEmpty>
</dynamic>
</select>
异常四
元素类型为 "sqlMapConfig" 的内容必须匹配 "(properties?,settings?,resultObjectFactory?,typeAlias*,typeHandler*,transactionManager?,sqlMap+)+"。顺序错误
在ibatis的SqlMapConfig.xml文件中使用指定标签的顺序必须按照上面的顺序进行
解决方案:
在本次中,我将setting标签放到了transactionManager标签的后面;它必须放在properties标签的后面
students-classes3.0项目异常
异常五
java.lang.Long cannot be cast to java.lang.Integer
详细信息
java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer
at com.xyhsoft.demo.service.dao.clazz.impl.ClazzDaoImpl.insertClazz(ClazzDaoImpl.java:35)
at com.xyhsoft.demo.service.bo.clazz.impl.ClazzBoImpl.insertClazz(ClazzBoImpl.java:32)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
序列配置问题
<selectKey keyProperty="CLAZZID" resultClass="long">
SELECT SEQ_CLAZZ3.NEXTVAL as CLAZZID FROM DUAL
</selectKey>
解决方案:
将long改为int
异常六
The error occurred in com/xyhsoft/demo/conf/ibatis/oracle/clazzConfig.xml.
--- The error occurred while applying a result map.
--- Check the com.xyhsoft.demo.clazz.getClazzById-AutoResultMap.
--- Check the result mapping for the 'CLAZZNAME' property.
--- Cause: java.lang.RuntimeException: JavaBeansDataExchange could not instantiate result class. Cause: java.lang.InstantiationException: java.util.Map; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred in com/xyhsoft/demo/conf/ibatis/oracle/clazzConfig.xml.
--- The error occurred while applying a result map.
--- Check the com.xyhsoft.demo.clazz.getClazzById-AutoResultMap.
--- Check the result mapping for the 'CLAZZNAME' property.
--- Cause: java.lang.RuntimeException: JavaBeansDataExchange could not instantiate result class. Cause: java.lang.InstantiationException: java.util.Map
Map集合问题
<select id="getClazzById" parameterClass="map" resultClass="map">
select * from clazz3 where CLAZZID=#CLAZZID#
</select>
解决方案:
当map作为返回类型时,必须是hashmap;返回类型将resultClass="map"改为resultClass="hashmap"
CopyTime--2017年1月7日17:40:04
异常七
Cause: com.ibatis.common.xml.NodeletException: Error parsing XML.
原因:
ibatis XML 文档结构必须从头至尾包含在同一个实体内。
解决方案:
方案一:
查看是否有标签没有闭合
方案二:必须是标准的注释(遇到的情况)
xml文件中的中文注释两边是否无空格,如没有,则加上空格
左右边界加上空格的方式解决 <!-- 中文注解 -->是对的
方案三:
也可能是配置文件sqlMapConfig.xml或映射文件中http://www.ibatis.com/dtd/sql-map-config-2.dtd"> 含有多个空格的原因
异常八
连接数据库报错
java.sql.SQLException: The Network Adapter could not establish the connection
解决方案
方案一:
数据库服务未开启
方案二:
配置不正确
方案三:
192.1**.此域名只有在连接局域网时使用,断网情况下用localhost
说明:数据库连接url--jdbc:oracle:thin:@localhost:1521/orcl,/orcl或:orcl或/ORCL或:ORCL都可以
异常九
Cause: com.ibatis.common.beans.ProbeException: There is no READABLE property named 'id' in class 'com.entity.User'
The Network Adapter could not establish the connection
Cause: java.sql.SQLException: ORA-00957: 重复的列名
update user2 set userName=#userName#,userName=#userName#,sex=#sex#,status=#status# where userId=#userId#
UpdateTime--2017年2月20日18:49:30
demoGyyunPlatform项目
异常十
com.ibatis.sqlmap.client.SqlMapException: There is no statement named gongYiPlatForm.dataSynchronization in this SqlMap.
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.getMappedStatement(SqlMapExecutorDelegate.java:232)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.update(SqlMapExecutorDelegate.java:449)
at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.update(SqlMapSessionImpl.java:90)
at org.springframework.orm.ibatis.SqlMapClientTemplate$9.doInSqlMapClient(SqlMapClientTemplate.java:383)
at org.springframework.orm.ibatis.SqlMapClientTemplate$9.doInSqlMapClient(SqlMapClientTemplate.java:381)
at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:203)
at org.springframework.orm.ibatis.SqlMapClientTemplate.update(SqlMapClientTemplate.java:381)
at com.xyhsoft.demo.service.dao.gongyi.impl.DaoGongYiImpl.transferProcedure(DaoGongYiImpl.java:26)
at com.xyhsoft.demo.service.bo.gongyi.impl.BoGongYiImpl.transferProcedure(BoGongYiImpl.java:32)
原因:
iBATIS有两个配置文件:ibatisConfig.xml和sqlmap-oracle-config.xml,ibatisConfig.xml是总配置文件,sqlmap-oracle-config.xml是子配置文件,总配置文件引入了子配置文件
解决方案:
ibatis的配置文件只能有一个(<sqlMapConfig></sqlMapConfig>标签只能有一个),其他ibatis文件必须是sqlMap(<sqlMap namespace="base"></sqlMap>)
ibatis的配置文件去引入sqlMap文件
EXCEPTION-IBATIS的更多相关文章
- Exception:HTTP Status 500 - org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
主要错误信息如下: HTTP Status 500 - org.apache.ibatis.binding.BindingException: Invalid bound statement (not ...
- org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter 'username' not found. Available parameters are [1, 0, param1, param2]
Spring+mybatis错误:org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.bi ...
- Cause: net.sf.cglib.beans.BulkBeanException; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:
2017-03-13 15:40:15,003 ERROR [com.hisense.hitv.service.dotexc.impl.DotExcPolicyServiceImpl.updateD ...
- 解决:org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.BuilderException: Error evaluating expression 'requestMap.maintenancename != null and requestMap.maintenance
异常如下:org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.Builde ...
- 怪事年年有,今天特别多!org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter 'empno' not found. Available parameters are [emp, deptno, param1, param
错误: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.Binding ...
- SpringBoot报错:nested exception is org.apache.ibatis.executor.ExecutorException: No constructor found in com.tuyrk.test.User matching [java.lang.Long, java.lang.String, java.lang.String]
错误提示: Caused by: org.apache.ibatis.executor.ExecutorException: No constructor found in com.tuyrk._16 ...
- MyBatis 传List参数 nested exception is org.apache.ibatis.binding.BindingException: Parameter 'idList' not found.
在MyBatis传入List参数时,MyBatis报错:nested exception is org.apache.ibatis.binding.BindingException: Paramete ...
- Springboot-001-解决nested exception is org.apache.ibatis.binding.BindingException: Parameter 'env' not found. Available parameters are [arg1, arg0, param1, param2]
环境:Springboot + Mybatis + MySQL + VUE 场景: 前端发出数据比对请求,在服务后台与数据库交互时,接口提示错误信息如下所示: { "code": ...
- Exception in thread "main" org.apache.ibatis.binding.BindingException: Type interface com.test.bean.groupMapper is not known to the MapperRegistry.
Exception in thread "main" org.apache.ibatis.binding.BindingException: Type interface com. ...
- MyBatis笔记----报错Exception in thread "main" org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.ij34.model.UserMapper.selectUser
信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@41cf53f9: startup ...
随机推荐
- android 管理手机短信
为了看代码方便,一边在网上google资料,一边看Android java 源代码. 偶然发现了一个类MmsSmsDatabaseHelper.java,原来android将所有的短信信息都存入了mm ...
- [MAC OS ] UserDefaults
reference to : http://www.jianshu.com/p/d59b004b5ea7 1.用UserDefaults存储配置信息 注:本次使用UserDefaults存储信息是在不 ...
- [Android Pro] activity-alias的使用
activity-alias是android里为了重复使用Activity而设计的. 当在Activity的onCreate()方法里,执行getIntent().getComponent().get ...
- 游戏:贪吃虫(GreedyMaggot)
该游戏类似于贪吃蛇,但可以在二维平面上以任意方向前进.当吃到食物手,食物会从虫头向虫尾移动,移到虫尾后,贪吃虫长度会增加.本来给它取名为贪吃蛆的,并且工程的英文名Maggot就是蛆的意思,后来想想有点 ...
- TabLayout ViewPager Fragment 简介 案例 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- C#代码审查工具 StyleCop
SourceAnalysis (StyleCop)的终极目标是让所有人都能写出优雅和一致的代码,因此这些代码具有很高的可读性. SourceAnalysis (StyleCop)不是代码格式化(代码美 ...
- 一步步教你如何在 Visual Studio 2013 上使用 Github
介绍 我承认越是能将事情变简单的工具我越会更多地使用它.尽管我已经知道了足够的命令来使用Github,但我宁愿它被集成到IDE中.在本教程中,我会告诉你使用Visual Studio 2013如何实现 ...
- JS操作JSON常用方法
一.JSON字符串的替换 工作经常遇到这样的字符串,如下: 需要经过替换后,才能从字符串转化成JSON对象.这里我们需要用JS实现replaceAll的功能, 将所有的 ' \\" ' 替换 ...
- 【NodeJS】nvm、npm、node安装、使用、淘宝源设置等资料
NodeJS-安装使用淘宝源 管理 node 版本,选择 nvm 还是 n? - WEB前端 - 伯乐在线 creationix/nvm: Node Version Manager - Simple ...
- Cognos让指定用户不具有删除内容的权限
为了方便用户使用Cognos,现在很多对权限要求不够严格的用户就想到了可以让用户实现匿名登陆,即不登陆系统即可实现访问报表,当然这也仅仅是按照客户的需求,我个人认为一个安全性的数据平台还是需要对登陆. ...