-
iBatis报错3
异常如下:
org.xml.sax.SAXParseException: The content of element type "resultMap" must match "(result*,discriminator?)".
源码如下:<sqlMap> <typeAlias alias="User" type="jp.co.grids.mda.entity.user.User"/> <typeAlias alias="Department" type="jp.co.grids.mda.entity.user.Department"/> <resultMap id="DepartmentResult" class="Department"> <result property="id" column="ID" /> <result property="depName" column="DEP_NAME" /> <result property="users" column="ID" select="getUsers" /> </resultMap> <select id="getUsers" resultClass="User"> select * from users where id=#value# </select> <select id="Department.select" parameterClass="java.lang.Long" resultMap="DepartmentResult"> select id, dep_name from department </select> </sqlMap>
框架是Spring2.5 + struts2 + ibatis2.3。 百思不得其解,语法应该没有错啊。
问题补充:
yourgame 你贴的代码里并没有resultMap使用。2009年3月26日 15:15
1个答案 按时间排序 按投票排序
-
采纳的答案
我贴一个给你参考 源代码工程可以下载
地址 [url]http://yourgame.iteye.com/blog/252853 [/url]
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd"> <sqlMap namespace="Category"> <typeAlias alias="subject" type="com.lhq.prj.bms.po.Subject" /> <typeAlias alias="category" type="com.lhq.prj.bms.po.Category" /> <typeAlias alias="page" type="com.lhq.prj.bms.core.Page" /> <parameterMap class="category" id="pm_category_without_id"> <parameter property="categoryName" javaType="string" jdbcType="VARCHAR" /> <parameter property="subjectId" javaType="integer" jdbcType="NUMBER" /> <parameter property="subjectName" javaType="string" jdbcType="VARCHAR" /> <parameter property="remark" javaType="string" jdbcType="VARCHAR" /> </parameterMap> <sql id="byCategoryIdCondition"> <![CDATA[ categoryId = #categoryId:NUMBER# ]]> </sql> <insert id="save" parameterMap="pm_category_without_id"> <![CDATA[ INSERT INTO t_category (categoryName,subjectId,subjectName,remark) VALUES (?,?,?,?) ]]> <selectKey resultClass="int"> <![CDATA[ SELECT @@IDENTITY AS ID ]]> </selectKey> </insert> <delete id="deleteById" parameterClass="integer"> <![CDATA[ delete t_category ]]> <dynamic prepend="WHERE"> <include refid="byCategoryIdCondition" /> </dynamic> </delete> <select id="findAll" resultClass="category"> <![CDATA[ SELECT * FROM t_category ]]> </select> <update id="update" parameterClass="category"> <![CDATA[ UPDATE t_category ]]> <dynamic prepend="SET"> <isNotNull property="categoryName" prepend=","> <![CDATA[ categoryName = #categoryName:VARCHAR# ]]> </isNotNull> <isNotNull property="subjectId" prepend=","> <![CDATA[ subjectId = #subjectId:NUMBER# ]]> </isNotNull> <isNotNull property="subjectName" prepend=","> <![CDATA[ subjectName = #subjectName:VARCHAR# ]]> </isNotNull> <isNotNull property="remark" prepend=","> <![CDATA[ remark = #remark:VARCHAR# ]]> </isNotNull> </dynamic> <dynamic prepend="WHERE"> <include refid="byCategoryIdCondition" /> </dynamic> </update> <sql id="findCategoryByPageCondition"> <isNotEmpty property="conditions"> <iterate property="conditions" open="(" close=")" conjunction="OR"> <![CDATA[ upper(categoryName) LIKE '%' + upper(#conditions[]:VARCHAR#) + '%' OR upper(subjectName) LIKE '%' + upper(#conditions[]:VARCHAR#) + '%' OR upper(remark) LIKE '%' + upper(#conditions[]:VARCHAR#) + '%' ]]> </iterate> </isNotEmpty> </sql> <select id="findByPage" parameterClass="page" resultClass="category"> <![CDATA[ SELECT TOP $limit$ * FROM t_category WHERE (categoryId >= (SELECT MAX(categoryId) FROM (SELECT TOP $start$ categoryId FROM t_category ]]> <dynamic prepend="WHERE"> <include refid="findCategoryByPageCondition" /> </dynamic> <![CDATA[ ORDER BY categoryId ) AS T)) ]]> <dynamic prepend="AND"> <include refid="findCategoryByPageCondition" /> </dynamic> <![CDATA[ ORDER BY categoryId ]]> </select> <select id="findByCount" parameterClass="page" resultClass="int"> <![CDATA[ SELECT COUNT(*) FROM t_category ]]> <dynamic prepend="WHERE"> <include refid="findCategoryByPageCondition" /> </dynamic> </select> <select id="findCategoryBySubject" parameterClass="subject" resultClass="category"> <![CDATA[ SELECT * FROM t_category ]]> <dynamic prepend="WHERE"> <isNotNull property="subjectId" prepend="OR"> <![CDATA[ subjectId = #subjectId:NUMBER# ]]> </isNotNull> <isNotNull property="subjectName" prepend="OR"> <![CDATA[ subjectName like '%' + #subjectName:VARCHAR# + '%' ]]> </isNotNull> </dynamic> </select> </sqlMap>
2009年3月26日 15:23
相关推荐
在深入探讨ibatis框架中可能遇到的错误时,我们首先需要理解ibatis(现被称为MyBatis)的基本概念。ibatis是一种优秀的持久层框架,它消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。ibatis可以使用...
在IT行业中,尤其是在Java开发领域,Spring框架与iBatis持久层框架的组合是常见的应用架构。本篇文章将深入探讨如何在这样的环境下实现安全的线程管理,确保系统的高效、稳定运行。 首先,Spring框架提供了丰富的...
综上所述,通过iBATIS操作Oracle的CLOB数据,需要对iBATIS的映射文件、类型处理器以及Oracle的CLOB特性有深入理解。在实际开发中,合理配置和使用这些机制,能够有效地管理大量文本数据,同时保持代码的简洁性和可...
通过Ibatis3xml文件配置+Mysql实现数据批量插入,原先在网上找很多,都是关于批量更新,批量插入的很少,而且其写法又完全不同,所以自己研究了一下。可供参考。另外插入时如出现内容报错,请参照my.cnf修改书库配置...
开源ibator什么xml和pojo的时候,经常会带一些讨厌的注释还有一些没用的ibatorgenerator等的,我改了它的源代码,弄了个干净的ibator
结果发现总是报错Ambiguous match found 经过参考资料,重新整理了ibatis的资料,原因如下: iBatis中使用了Castle.DynamicProxy 1.5 而Castle.DynamicProxy 1.5版本是旧版本,支持到.Net 2.0, 目前最新的版本为...
当运行测试用例(如JUnit)时,报错信息显示`org.apache.ibatis.exceptions.PersistenceException`,其根本原因可能是一个`ReflectionException`,具体为尝试实例化类`com.fendo.entity.Person`时遇到了无效的类型或...
- 如果有缺失的包,需要根据报错信息搜索并添加对应的依赖 - 编译和运行项目,调试和解决可能出现的问题 这个项目是一个很好的学习和研究平台,因为它集成了多种常见的Java Web开发技术,可以帮助你深入了解这些...
总的来说,解决MyBatis-Plus 3.1.1版本使用Lambda表达式查询报错的问题,主要从以下几个方面入手: 1. 检查并确保实体类中的字段有正确的`@TableField`注解,指定了数据库中的对应列名。 2. 在配置中启用Lambda支持...
- **错误定位**:MyBatis 报错时会提供 SQL 映射文件和行号,便于定位问题。 ### 8. 性能优化 - **批处理**:使用 `SqlSession` 的 batch() 方法,批量执行相似的插入或更新操作。 - **缓存**:MyBatis 支持一级...
1.简单的ibatis多表级联 2.基于cxf的restful接口开发,包括文件上传(文档,图片等)接口 3.redis缓存服务,通过spring的aop来控制 4.file表太大,我给清空了,测试的是注意报错 5.本人测试通过,有问题可交流
iBatis结合Oracle批量插入三种方法的测评 iBatis是一种流行的持久层框架,提供了对数据库的访问和操作功能。Oracle是目前最流行的关系数据库管理系统之一。今天,我们将讨论iBatis结合Oracle批量插入三种方法的测评...
提供ssi ssh项目所需的所有jar包,只...你下载的web项目是不是缺包报错呢?下载--解压--放到web的lib下--发布--启动tomcat即可,帮到你点个赞,缺数据库驱动的,请下载我的资源'mysql+oracle+sqlserver三大数据库驱动包'
4. **启动应用**:完成上述步骤后,启动应用,如果没有报错,说明Struts2环境已搭建成功。 5. **Action的实现**:Struts2的Action有两种实现方式,一是直接实现`Action`接口,二是继承`ActionSupport`类。`...
springMVC ibatis war mysql
由于我初学SSI框架的时候在网上搜了很多资料,要么下载不下来,要么把框架搭建好了运行的时候总是报错,找不到个别的包,因此我把这个搭建好的SSI框架源码奉献给大家,希望爱好软件行业的你与我一同前进,里面的配置...
②删除操作时会报错,原因如下: com.mydomain.data.SimpleExample.java文件中的删除方法如下: public static void deleteAccount (int id) throws SQLException { sqlMapper.delete("deleteAccount", id); ...