`
xiaoboss
  • 浏览: 650860 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

ibatis的resultClass

 
阅读更多

  ibatis的resultClass与resultMap还是有很大的区别。以下是我碰到的一个问题。

     配置文件写法如下

<sqlMap>
     <typeAlias alias="notice" type="path.country.basic.entity.Notice"/>
      <resultMap id="noticeResult" class="notice" >
         <result property="id" column="MainID"/>
         <result property="content" column="Notice_Content"/>
         <result property="isUsed" column="Notice_IsUsed"/>
         <result property="createMan" column="CreateId"/>
         <result property="createDate" column="CreateDate"/>
         <result property="createIp" column="CreateIP" />
         <result property="lastModifyMan" column="ModifyId"/>
         <result property="lastModifyDate" column="ModifyDate" />
         <result property="lastModifyIp" column="ModifyIP" />
         <result property="manName" column="CreateId" select="getUserNameById"/>
     </resultMap>
      <select id="getNewNotice" resultClass="notice">
         SELECT *  FROM Bse_Notice WHERE Notice_IsUsed='1'
     </select>
  </sqlMap>

 

在前台调用时,对象是取到了,但是里面的属性值为空。

      查了相关资料才知道:resultclass属于隐身映射,虽然你指定resultclass=“”,具体某一个类,但是select语句得到的结果是一条实力记录,但如果数据库字段与类的属性名字不一致,这个时候就会出现映射错误,有一种方式可以解决就是在写select语句时,给每个字段用as运算符取名字与属性一样:例如:select realname as name...其中realname是字段列名,name是属性字段名。

      当然解决问题还是很容易的,只需要把resultClass改为resultMap就行了。

      在性能方面,resultMap要比resultClass高,所以建议尽量使用resultMap。

分享到:
评论

相关推荐

    ibatis 用HashMap解决resultClass映射

    ### ibatis 使用 HashMap 解决 resultClass 映射 在日常的软件开发过程中,尤其是在处理数据库查询时,我们经常面临一个问题:如何优雅地处理那些未知或动态变化的列名及列数的情况?在这种情况下,传统的实体类...

    ibatis plugin用户指南

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

    ibatis的使用教程

    - `&lt;select&gt;` 标签用于查询,其中包含 SQL 语句,并设置 `resultClass` 属性指定返回结果的类型。 - `&lt;insert&gt;` 标签用于插入数据,设置 `parameterClass` 指定输入参数类型。 - `&lt;update&gt;` 标签用于更新数据。 - `...

    iBatis文档\ibatis.doc

    &lt;select id="selectUsers" parameterClass="int" resultClass="User"&gt; SELECT * FROM User WHERE name LIKE '%$name$%' age = #age# ``` #### 事务管理 iBatis支持两种事务管理机制:基于JDBC的...

    ibatis 配置文件详解

    &lt;select id="getAllUsers" resultClass="user"&gt; SELECT id, name FROM user ORDER BY id ``` 这段代码定义了一个名为`getAllUsers`的方法,用于执行查询所有用户信息的SQL语句,并将结果映射为`User`对象列表。 ...

    Ibatis中文版教程

    &lt;select id="selectAllContacts" resultClass="com.example.Contact"&gt; SELECT * FROM contact ``` 然后,在Java代码中使用SqlSession对象执行此查询: ```java // 创建SqlSessionFactory SqlSessionFactory ...

    ibatis的错误总结

    在深入探讨ibatis框架中可能遇到的错误时,我们首先需要理解ibatis(现被称为MyBatis)的基本概念。ibatis是一种优秀的持久层框架,它消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。ibatis可以使用...

    myBatis和ibatis的区别

    - 类似地,`resultClass`属性在ibatis中用于指定结果类型,在myBatis中被替换成了`resultType`。 #### 六、其他细节变化 - **存储过程的支持**:在ibatis中,存储过程的调用使用`&lt;procedure&gt;`元素,而在myBatis中...

    解决IBatis缓存动态字段问题

    resultClass="java.util.HashMap" remapResults="true"&gt; select $fieldnames$ from $resourcetable$ where 1=1 ``` 这里的 `&lt;select&gt;` 标签定义了一个查询语句,其参数类型为 `HashMap`,返回结果也是 `...

    iBatis简明教程及快速入门

    &lt;select id="getAccount" parameterClass="java.lang.String" resultClass="example.Account"&gt; select * from Account where username = #value# insert into Account(username, password) values(#username...

    ibatis环境搭建教程

    ### ibatis环境搭建教程 #### 一、ibatis简介与特点 ibatis是一个开源的持久层框架,它提供了一种简单而强大的ORM(Object-Relational Mapping)实现方式,能够帮助开发者更高效地进行Java应用及数据库之间的交互...

    ibatis2.0+sqlserver2005环境搭建

    在本教程中,我们将详细介绍如何搭建一个基于Ibatis 2.3.4.726版本和SQL Server 2005的开发环境。Ibatis是一个轻量级的持久层框架,它允许开发者将SQL语句与Java代码分离,提高了数据库操作的灵活性。 首先,确保你...

    ibatis入门实例(全代码)

    **Ibatis 入门实例详解** Ibatis 是一个优秀的轻量级 Java ORM(对象关系映射)框架,它允许开发者将 SQL 查询与 Java 代码分离,使得数据访问层更加灵活和易于维护。在这个"ibatis入门实例(全代码)"中,我们将...

    .net中使用iBATIS的小例子

    在.NET环境中,iBATIS(现更名为MyBatis .NET)是一个流行的持久层框架,它提供了数据访问的简便方法,将SQL查询与业务逻辑解耦。这个小例子展示了如何在Visual Studio 2008中集成和使用iBATISNET。下面我们将详细...

    详细介绍Ibatis的用法

    - **`resultClass`和`resultMap`**:用于指定结果集的映射类型,其中`resultMap`提供了更灵活的映射方式,可以处理复杂的一对多、多对多关系。 - **`cacheModel`**:定义缓存策略,可以提高应用程序的性能。 - **...

    Java_Web_核心框架之_iBATIS

    &lt;select id="selectUserById" parameterClass="int" resultClass="com.example.User"&gt; SELECT * FROM users WHERE id = #value# &lt;!-- 更多SQL语句... --&gt; ``` 在Java代码中,可以通过以下方式调用SQL: ```...

    Ibatis应用实例.docx

    在`&lt;select&gt;`标签中,`id`属性是SQL语句的唯一标识,`parameterClass`指定了传入参数的类型,而`resultClass`则指定了返回结果的类型。在示例中,`getAccount`方法用于根据username获取Account对象,SQL语句是查询...

    ibatisjar包

    &lt;select id="selectUserById" parameterClass="int" resultClass="User"&gt; SELECT * FROM users WHERE id = #value# ``` 在Java代码中,你可以使用SqlSessionFactory来创建SqlSession对象,然后通过SqlSession...

Global site tag (gtag.js) - Google Analytics