`

Ibatis resultmap 与select 字段多少的问题

 
阅读更多

如下:resultMap

 <resultMap id="userResult" class="com.eclink.uc.user.vo.UserVO" >
    <result column="USER_ID" property="userId" jdbcType="NUMBER" nullValue="0" />
    <result column="LOGIN_NAME" property="loginName" jdbcType="VARCHAR" nullValue=""/>
    <result column="REAL_NAME" property="realName" jdbcType="VARCHAR" nullValue=""/>
    <result column="STATUS" property="status" jdbcType="VARCHAR" nullValue=""/>
    <result column="TELEPHONE" property="telephone" jdbcType="VARCHAR" nullValue=""/>
    <result column="EMAIL" property="email" jdbcType="VARCHAR" nullValue=""/>
    <result column="CREATE_DATE" property="createDate" jdbcType="TIMESTAMP" nullValue="" />
    <result column="SEX" property="sex" jdbcType="TIMESTAMP" nullValue="" />
    <result column="MOBILE" property="mobile" jdbcType="TIMESTAMP" nullValue="" />
    <result column="DEFAULT_ORG_ID" property="defaultOrgId" jdbcType="NUMBER" nullValue="0" />
    <result column="DEFAULT_SYSTEM_CODE" property="defaultSystemCode" jdbcType="VARCHAR" nullValue="" />
  </resultMap>

 

select 语句如下:

<select id="getUserById" resultMap="userResult" parameterClass="int">
		 <![CDATA[ select to_char(create_date,'YYYY-MM-DD') as CREATE_DATE,STATUS,REAL_NAME,LOGIN_NAME,CREATE_USER,USER_ID,SEX,TELEPHONE,MOBILE,EMAIL,to_char(last_update_date,'YYYY-MM-DD') as LAST_UPDATE_DATE,DEFAULT_ORG_ID  from UC_USER where USER_ID = #userId:NUMBER#  ]]>
	</select>

 

即select 中没有DEFAULT_SYSTEM_CODE字段出来,运行的时候会报错

也就是说SELECT 中查出的字段数要大于或等于resultMap的了数量

这样要注意了,如果原来写好的resultMap与select 是一一对应的,那么维护的时候最好不要直接在原来的resultMap上加一个字段,因为可能多个select 语句引用了该resultMap

最好的方法就是写一个resultMap继承自上面的resultMap,然后写一个select

 

分享到:
评论

相关推荐

    Ibatis入门例子,Ibatis教程

    例如,我们可以创建一个名为`users`的表,包含`id`、`username`和`password`三个字段,然后创建一个User实体类,与表中的字段一一对应。 ```java public class User { private int id; private String username; ...

    iBatis文档\ibatis.doc

    在XML映射文件中,你可以定义`resultMap`来描述字段与对象属性之间的对应关系。 ### iBatis 高级特性 #### 数据关联 iBatis支持复杂的数据关联,包括一对多、一对一关联。通过`collection`和`association`元素,你...

    ibatis入门

    在映射文件中,使用 `&lt;resultMap&gt;` 定义对象字段与 SQL 列的映射关系。 7. **Mybatis 的优势** - 灵活的 SQL:Ibatis 允许开发者自由编写 SQL,避免了 ORM 框架的过度抽象。 - 事务控制:Ibatis 提供了对事务的...

    ibatis用xml配置文件配置使用

    本篇文章将深入探讨如何使用XML配置文件来配置iBATIS,以解决你在实际开发中可能遇到的各种问题。 首先,我们了解iBATIS的核心概念——映射器(Mapper)。映射器是定义SQL语句的地方,而XML配置文件是映射器的主要...

    Ibatis jar

    ResultMap不仅可以自动匹配列名与字段名,还可以处理复杂的一对多、多对一、一对一的关系映射。此外,Ibatis还提供了TypeHandler机制,用于自定义Java类型与数据库类型的转换,解决一些特殊类型的数据处理问题。 与...

    ibatis plugin用户指南

    5. **自动生成select语句**:在&lt;select&gt;标签处,按Alt+Enter选择Generate result for resultMap or resultClass,插件会根据parameterClass或parameterMap自动生成对应的select语句。 6. **SqlMapClient方法调用的...

    iBatis入门(三)

    例如,当表中的字段与Java对象的属性不一致时,可以这样设置: ```xml &lt;resultMap id="userResultMap" type="com.example.User"&gt; &lt;/resultMap&gt; &lt;select id="selectUser" resultMap="userResultMap"&gt; SELECT...

    Ibatis多表查询

    `resultMap` 用于指定查询结果如何映射到 `Book` 类,其中 `users` 属性的 `column` 设置为 `oid`,`select` 设置为 `getUsersByBookId`,这意味着 Ibatis 将通过执行这个方法来获取与书关联的作者。`selectAllBooks...

    ibatis2.0中文API

    在映射文件中,我们可以定义`&lt;resultMap&gt;`来映射对象属性和字段,使用`&lt;id&gt;`、`&lt;result&gt;`等元素来指定主键和普通字段。此外,还可以使用`&lt;select&gt;`、`&lt;insert&gt;`、`&lt;update&gt;`和`&lt;delete&gt;`标签来定义SQL语句,它们可以...

    ibatis的错误总结

    如果查询返回的是一个包含多个字段的结果集,而不仅仅是单个`Long`值,则`resultClass`应该更改为能够容纳所有这些字段的Java类,或者使用`resultMap`属性来定义复杂的结果映射。 ### 总结 ibatis在处理SQL语句时...

    ibatis 配置文件详解

    #### 四、ibatis的类定义与使用 在使用ibatis时,还需要定义JavaBean,如`User`类,用于映射数据库中的表。`User`类中包含了对应数据库字段的属性,如`id`和`name`,并通过getter和setter方法进行访问。 同时,...

    ibatis的jar包

    - `&lt;resultMap&gt;`:定义结果集映射,将数据库字段与Java对象属性对应。 - `&lt;parameterMap&gt;`:定义参数映射,较少使用,多用注解替代。 5. **注解方式** Ibatis 从3.2版本开始支持注解,可以直接在Mapper接口的...

    ibatis 框架原理实现

    通过`&lt;resultMap&gt;`元素定义对象属性与数据库字段之间的映射关系。此外,还可以使用`&lt;result&gt;`元素进行单个字段的映射,或者使用嵌套结果映射处理一对多或多对多的关系。 5. **SqlSession接口**: 在Ibatis中,...

    ibatis多表查询

    特别地,`users`属性通过`column="oid"`和`select="getUsersByBookId"`来指定,这意味着Ibatis将根据`oid`执行另一个SQL查询(即`getUsersByBookId`),并将返回的结果填充到`Book`对象的`users`属性。 `select`...

    ibatis 一对多 多对多完整映射

    在`ibatis`的映射文件中,你可以定义一个`resultMap`来表示父对象,然后通过`collection`元素来声明一对多的关系。`collection`元素的` ofType`属性指定子对象的类型,`property`属性则对应父对象中的集合属性名。 ...

    ibatis生成实体工具

    在Java编程中,实体类通常代表数据库中的表,每个属性对应表的字段,而iBatis的映射文件则定义了如何通过SQL语句与这些实体类进行交互。映射文件包含了插入、更新、删除和查询等操作,与实体类配合使用,可以实现对...

    ibatis 帮助文档

    4. **接口与映射**:在Java代码中,我们通过定义接口来表示数据库操作,而Ibatis通过`@Select`, `@Insert`, `@Update`, `@Delete`等注解或者XML映射文件将接口方法与SQL语句关联。 5. **SqlSession**:它是与数据库...

    深入分析 iBATIS 框架之系统架构与映射原理

    2. **结果集映射**:iBATIS 使用 `&lt;resultMap&gt;` 元素来定义结果集的映射规则,将数据库查询结果中的列与 Java 对象的属性对应起来。例如: ```xml &lt;resultMap id="userResultMap" class="User"&gt; &lt;/...

Global site tag (gtag.js) - Google Analytics