如下: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
分享到:
相关推荐
例如,我们可以创建一个名为`users`的表,包含`id`、`username`和`password`三个字段,然后创建一个User实体类,与表中的字段一一对应。 ```java public class User { private int id; private String username; ...
在XML映射文件中,你可以定义`resultMap`来描述字段与对象属性之间的对应关系。 ### iBatis 高级特性 #### 数据关联 iBatis支持复杂的数据关联,包括一对多、一对一关联。通过`collection`和`association`元素,你...
在映射文件中,使用 `<resultMap>` 定义对象字段与 SQL 列的映射关系。 7. **Mybatis 的优势** - 灵活的 SQL:Ibatis 允许开发者自由编写 SQL,避免了 ORM 框架的过度抽象。 - 事务控制:Ibatis 提供了对事务的...
本篇文章将深入探讨如何使用XML配置文件来配置iBATIS,以解决你在实际开发中可能遇到的各种问题。 首先,我们了解iBATIS的核心概念——映射器(Mapper)。映射器是定义SQL语句的地方,而XML配置文件是映射器的主要...
ResultMap不仅可以自动匹配列名与字段名,还可以处理复杂的一对多、多对一、一对一的关系映射。此外,Ibatis还提供了TypeHandler机制,用于自定义Java类型与数据库类型的转换,解决一些特殊类型的数据处理问题。 与...
5. **自动生成select语句**:在<select>标签处,按Alt+Enter选择Generate result for resultMap or resultClass,插件会根据parameterClass或parameterMap自动生成对应的select语句。 6. **SqlMapClient方法调用的...
例如,当表中的字段与Java对象的属性不一致时,可以这样设置: ```xml <resultMap id="userResultMap" type="com.example.User"> </resultMap> <select id="selectUser" resultMap="userResultMap"> SELECT...
`resultMap` 用于指定查询结果如何映射到 `Book` 类,其中 `users` 属性的 `column` 设置为 `oid`,`select` 设置为 `getUsersByBookId`,这意味着 Ibatis 将通过执行这个方法来获取与书关联的作者。`selectAllBooks...
在映射文件中,我们可以定义`<resultMap>`来映射对象属性和字段,使用`<id>`、`<result>`等元素来指定主键和普通字段。此外,还可以使用`<select>`、`<insert>`、`<update>`和`<delete>`标签来定义SQL语句,它们可以...
如果查询返回的是一个包含多个字段的结果集,而不仅仅是单个`Long`值,则`resultClass`应该更改为能够容纳所有这些字段的Java类,或者使用`resultMap`属性来定义复杂的结果映射。 ### 总结 ibatis在处理SQL语句时...
#### 四、ibatis的类定义与使用 在使用ibatis时,还需要定义JavaBean,如`User`类,用于映射数据库中的表。`User`类中包含了对应数据库字段的属性,如`id`和`name`,并通过getter和setter方法进行访问。 同时,...
- `<resultMap>`:定义结果集映射,将数据库字段与Java对象属性对应。 - `<parameterMap>`:定义参数映射,较少使用,多用注解替代。 5. **注解方式** Ibatis 从3.2版本开始支持注解,可以直接在Mapper接口的...
通过`<resultMap>`元素定义对象属性与数据库字段之间的映射关系。此外,还可以使用`<result>`元素进行单个字段的映射,或者使用嵌套结果映射处理一对多或多对多的关系。 5. **SqlSession接口**: 在Ibatis中,...
特别地,`users`属性通过`column="oid"`和`select="getUsersByBookId"`来指定,这意味着Ibatis将根据`oid`执行另一个SQL查询(即`getUsersByBookId`),并将返回的结果填充到`Book`对象的`users`属性。 `select`...
在`ibatis`的映射文件中,你可以定义一个`resultMap`来表示父对象,然后通过`collection`元素来声明一对多的关系。`collection`元素的` ofType`属性指定子对象的类型,`property`属性则对应父对象中的集合属性名。 ...
在Java编程中,实体类通常代表数据库中的表,每个属性对应表的字段,而iBatis的映射文件则定义了如何通过SQL语句与这些实体类进行交互。映射文件包含了插入、更新、删除和查询等操作,与实体类配合使用,可以实现对...
4. **接口与映射**:在Java代码中,我们通过定义接口来表示数据库操作,而Ibatis通过`@Select`, `@Insert`, `@Update`, `@Delete`等注解或者XML映射文件将接口方法与SQL语句关联。 5. **SqlSession**:它是与数据库...
2. **结果集映射**:iBATIS 使用 `<resultMap>` 元素来定义结果集的映射规则,将数据库查询结果中的列与 Java 对象的属性对应起来。例如: ```xml <resultMap id="userResultMap" class="User"> </...