EXCEPTION-IBATIS

it2025-04-30  9

CreateTime--2016年8月23日08:44:03Author:Marydonibatis的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:30demoGyyunPlatform项目 异常十

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文件

 

 

转载于:https://www.cnblogs.com/Marydon20170307/p/6524652.html

最新回复(0)