-
Ibatis的1对多把我搞疯了5
先看错误
Exception in thread "main" org.springframework.jdbc.UncategorizedSQLException: SqlMapClient operation; uncategorized SQLException for SQL []; SQL state [null]; error code [0]; --- The error occurred in com/User.xml. --- The error occurred while applying a result map. --- Check the handr. --- Check the result mapping for the 'fingers' property. --- Cause: java.lang.NullPointerException; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException: --- The error occurred in com/User.xml. --- The error occurred while applying a result map. --- Check the handr. --- Check the result mapping for the 'fingers' property.
发代码前先说一下,这是测试用代码,所以结构凑合吧package com; import java.util.List; public class Hand { private int handId; private List fingers; public int getHandId() { return handId; } public void setHandId(int handId) { this.handId = handId; } public List getFingers() { return fingers; } public void setFingers(List fingers) { this.fingers = fingers; } }
package com; public class Finger { private int fingerId; public int getFingerId() { return fingerId; } public void setFingerId(int fingerId) { this.fingerId = fingerId; } }
package com; import org.springframework.context.ApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport; public class Dao extends SqlMapClientDaoSupport { public Hand get(int i){ return (Hand) this.getSqlMapClientTemplate().queryForObject("getHand", i); } public static void main(String[] args){ ApplicationContext app = new FileSystemXmlApplicationContext("src/com/ApplicationContext.xml"); Dao dao = (Dao)app.getBean("dao"); Hand h = dao.get(1); System.out.println(h); } }
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE sqlMap PUBLIC "http://ibatis.apache.org/dtd/sql-map-2.dtd" "http://ibatis.apache.org/dtd/sql-map-2.dtd" > <sqlMap> <resultMap class="com.Hand" id="handr"> <result property="handId" column="h_id"/> <result property="fingers" select="getFingers" column="h_id"/> </resultMap> <resultMap class="com.Finger" id="fingerr"> <result property="fingerId" column="f_id"/> </resultMap> <select id="getHand" resultMap="handr" parameterClass="int"> select * from hand where h_id = #value# </select> <select id="getFingers" resultMap="fingerr" parameterClass="int"> select * from finger where h_id = #value# </select> </sqlMap>
表hand 里就一个h_id
finger h_id和f_id
简单的不能再简单了
但是我搞不定 晕死了2009年1月05日 18:44
目前还没有答案
相关推荐
本文将深入探讨如何在iBATIS中实现一对多和多对多的关系映射,并提供相关的源码分析和工具使用技巧。 **一对多关系映射** 在数据库设计中,一对多关系是指一个父记录可以与多个子记录关联,例如,一个用户可以有多...
iBatis多对多关系详解 iBatis是一种流行的持久层框架,用于简化Java应用程序和关系数据库之间的交互。在本文档中,我们将详细介绍iBatis在处理多对多关系时的配置和实现。 多对多关系 多对多关系是一种常见的关系...
本文将深入探讨`iBatis` 中的一对多映射关系,以及如何通过源码理解和使用这个特性。 一对多映射是数据库关系模型中的常见概念,指的是一个父表(如部门表)可以对应多个子表(如员工表),每个部门可以有多个员工...
ibatis配置多表关联(一对一、一对多、多对多
首先,我们需要在映射文件中定义主表(一对一端)和从表(多对一端)的映射。假设我们有一个`User`类对应`users`表,一个`Order`类对应`orders`表,其中`orders`表有一个`user_id`字段作为外键关联到`users`表。 在...
在Ibatis中处理多对多关系时,我们需要使用关联映射来定义这种关系。 1. **配置关联映射** 在Ibatis中,多对多关系通常通过`<collection>`标签来实现,它定义在一个实体类的映射文件中。这个标签通常包含`select`...
利用ibatis实现一对一、多对一的示例代码。每种关系用两种方式实现,具体的讲解可看我的博客http://blog.csdn.net/duwenchao1986/article/details/8565386
在Ibatis中,多表查询是一项重要的功能,它允许我们处理复杂的数据库操作,例如一对多、多对一或一对一的关系。在这个例子中,我们将探讨如何使用Ibatis进行一对多的多表查询,以`book`和`user`两个表为例。 首先,...
本篇将深入讲解iBATIS一对一映射的概念、配置及应用,帮助你更好地理解和运用这个功能。 一对一映射在数据库设计中是指两个表之间存在一对一的关系,例如,一个员工可能只有一个部门,一个部门也只对应一个员工。在...
1. **一对多关联映射原理** 一对多关联映射主要依赖于`<resultMap>`、`<collection>`和`<association>`元素。`<resultMap>`定义了对象和数据库记录之间的映射规则,`<collection>`用于表示多的一方,而`...
1. Ibatis SQL映射: Ibatis的主要特点是通过XML或注解定义SQL映射文件,将SQL语句与Java对象绑定。例如,`<select>`标签用于定义查询语句,`<insert>`、`<update>`和`<delete>`分别对应增删改操作。在SQL映射文件...
本文将深入探讨如何利用Ibatis实现一对多关系、批处理、事务管理和与Spring及Struts2的集成。 首先,让我们来看一下“一对多”关系。在数据库设计中,一对多关系很常见,比如一个用户可以有多个订单。在Ibatis中,...
1. **配置文件**:Ibatis的配置文件(mybatis-config.xml)是整个框架的入口,它包含了数据源、事务管理器、SqlSessionFactory等重要设置。数据源定义了连接数据库的信息,如驱动、URL、用户名和密码;...
Struts1和iBatis是两个非常经典的Java Web开发框架,它们在早期的Web应用程序中广泛应用。Struts1主要用于控制应用程序的流程,而iBatis则是一个轻量级的持久层框架,它提供了灵活的SQL映射机制,使得数据库操作与...
为了演示Ibatis的多表查询功能,本文档采用了一个简单的例子:一个图书 (`book`) 表和一个用户 (`user`) 表,其中图书表与用户表之间存在一对多的关系。这意味着每本书可以有多个作者。 **图书表 (`book`) 结构:** ...
本篇文章将详细探讨iBatis在增删改查(CRUD)操作以及一对一和一对多关系映射中的应用。 首先,让我们了解一下iBatis的CRUD操作: 1. **创建(Create)**:在iBatis中,创建数据通常通过`<insert>`标签实现。你需要...
总结来说,这个话题覆盖了Mybatis/iBatis中的多表映射,通过XML配置文件处理一对一和一对多关系,以及如何在ExtJS前端通过Model和Grid获取并展示这些数据。了解这些知识对于开发涉及多表交互的应用至关重要,能够...
最近想在最新的Spring5.0中集成ibatis(不是mybatis),发现已经不在支持SqlmapClientTemplate和SqlmapClientFactoryBean,于是搞了这个工具jar来进行支持如下配置 ...