`
zhkchi
  • 浏览: 120697 次
  • 性别: Icon_minigender_1
  • 来自: 江苏
社区版块
存档分类
最新评论

关于iBatis分模块的配置,以及一点其他的疑问,基于JPetStore讨论

阅读更多
简单起见,拿JPetStore5.0来举例吧.

在配置文件sql-map-config.xml中,他是这么写的
<sqlMap resource="com/ibatis/jpetstore/persistence/sqlmapdao/sql/Account.xml"/>
  <sqlMap resource="com/ibatis/jpetstore/persistence/sqlmapdao/sql/Category.xml"/>
  <sqlMap resource="com/ibatis/jpetstore/persistence/sqlmapdao/sql/Product.xml"/>
  <sqlMap resource="com/ibatis/jpetstore/persistence/sqlmapdao/sql/Sequence.xml"/>
  <sqlMap resource="com/ibatis/jpetstore/persistence/sqlmapdao/sql/LineItem.xml"/>
  <sqlMap resource="com/ibatis/jpetstore/persistence/sqlmapdao/sql/Order.xml"/>
  <sqlMap resource="com/ibatis/jpetstore/persistence/sqlmapdao/sql/Item.xml"/>


其他是transactionManager的配置就不管了.

这里的Account.xml是不是就是分模块的配置文件?我猜想应该是的吧

再问问Account.xml里面的一些东西
<select id="getAccountByUsername" resultClass="account" parameterClass="string">
    SELECT
          SIGNON.USERNAME,
          ACCOUNT.EMAIL,
          ACCOUNT.FIRSTNAME,
          ACCOUNT.LASTNAME,
          ACCOUNT.STATUS,
          ACCOUNT.ADDR1 AS address1,
          ACCOUNT.ADDR2 AS address2,
          ACCOUNT.CITY,
          ACCOUNT.STATE,
          ACCOUNT.ZIP,
          ACCOUNT.COUNTRY,
          ACCOUNT.PHONE,
          PROFILE.LANGPREF AS languagePreference,
          PROFILE.FAVCATEGORY AS favouriteCategoryId,
          PROFILE.MYLISTOPT AS listOption,
          PROFILE.BANNEROPT AS bannerOption,
          BANNERDATA.BANNERNAME
    FROM ACCOUNT, PROFILE, SIGNON, BANNERDATA
    WHERE ACCOUNT.USERID = #username#
      AND SIGNON.USERNAME = ACCOUNT.USERID
      AND PROFILE.USERID = ACCOUNT.USERID
      AND PROFILE.FAVCATEGORY = BANNERDATA.FAVCATEGORY
  </select>


我知道iBatis并没有hibernate那样,显示的对应column和field的对应关系.
就拿上面的select语句来说, iBatis怎么知道, SIGNON.USERNAME 这个东西对应哪个字段呢?
分享到:
评论
7 楼 Julysea 2006-12-06  
SIGNON.USERNAME是和你定义的简单javabean中的属性对应的,或者象上面兄台写的那样用map显示给出。
6 楼 csr2000 2006-12-04  
Ivan Li 写道
flyspider 写道
iBatis出色的是Data Mapper框架,其DAO包不算好用,出了Spring之后就更显鸡肋了,未来可能会被列入deprecated

同意这种说法,iBatis强在sql mapping,至于dao的管理还是交给spring去做吧
2.30已经被deprecated掉了,还有那个分页的
5 楼 IvanLi 2006-12-04  
flyspider 写道
iBatis出色的是Data Mapper框架,其DAO包不算好用,出了Spring之后就更显鸡肋了,未来可能会被列入deprecated

同意这种说法,iBatis强在sql mapping,至于dao的管理还是交给spring去做吧
4 楼 foxty 2006-12-03  
daocontext可以指定多个id,可以存在多个daocontext.
3 楼 flyspider 2006-12-03  
iBatis出色的是Data Mapper框架,其DAO包不算好用,出了Spring之后就更显鸡肋了,未来可能会被列入deprecated
2 楼 zhkchi 2006-12-01  
先谢谢你的回答。

我贴的是从iBatis的JPetStore copy过来的。#username#这个我是知道的,我以前用过公司的一个框架,和这个差不多,据说就是抄袭的iBatis,不过很多地方也不一样的。

我比较好奇的是分模块的配置,和dao.xml里面DAO interface的声明,dao.xml有模块化配置么?不会所有的dao interface都写在这里里面吧?

还有就是 column 和 field的映射了是如何做到的?谢谢

附上dao.xml的内容:
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE daoConfig
    PUBLIC "-//ibatis.apache.org//DTD DAO Configuration 2.0//EN"
    "http://ibatis.apache.org/dtd/dao-2.dtd">

<daoConfig>

  <context>

    <transactionManager type="SQLMAP">
      <property name="SqlMapConfigResource"
        value="com/ibatis/jpetstore/persistence/sqlmapdao/sql/sql-map-config.xml"/>
    </transactionManager>

    <dao interface="com.ibatis.jpetstore.persistence.iface.ItemDao"
      implementation="com.ibatis.jpetstore.persistence.sqlmapdao.ItemSqlMapDao"/>

    <dao interface="com.ibatis.jpetstore.persistence.iface.SequenceDao"
      implementation="com.ibatis.jpetstore.persistence.sqlmapdao.SequenceSqlMapDao"/>

    <dao interface="com.ibatis.jpetstore.persistence.iface.AccountDao"
      implementation="com.ibatis.jpetstore.persistence.sqlmapdao.AccountSqlMapDao"/>

    <dao interface="com.ibatis.jpetstore.persistence.iface.CategoryDao"
      implementation="com.ibatis.jpetstore.persistence.sqlmapdao.CategorySqlMapDao"/>

    <dao interface="com.ibatis.jpetstore.persistence.iface.ProductDao"
      implementation="com.ibatis.jpetstore.persistence.sqlmapdao.ProductSqlMapDao"/>

    <dao interface="com.ibatis.jpetstore.persistence.iface.OrderDao"
      implementation="com.ibatis.jpetstore.persistence.sqlmapdao.OrderSqlMapDao"/>

  </context>

</daoConfig>
1 楼 抛出异常的爱 2006-11-30  
#username#
有参数为username时就把username放入...
你引用时少了前面的头....
头是类与名字的对应表....可以一起贴出来看


  <resultMap id="incaseinfoResult" class="incaseinfomodel">
		<result property="incaseinfo_id"             column="incaseinfo_id"             />
		<result property="incaseinfo_incase_id"      column="incaseinfo_incase_id"      />
		<result property="incaseinfo_product_id"     column="incaseinfo_product_id"     />
		<result property="incaseinfo_product_name"   column="incaseinfo_product_name"   />
		<result property="incaseinfo_quantity"       column="incaseinfo_quantity"       />
		<result property="incaseinfo_rebate"         column="incaseinfo_rebate"         />
		<result property="incaseinfo_price"          column="incaseinfo_price"          />
		<result property="incaseinfo_flage"          column="incaseinfo_flage"          />
		<result property="incaseinfo_remark"         column="incaseinfo_remark"         />
  </resultMap>

相关推荐

    iBATIS JPetStore

    JPetStore是基于iBATIS实现的一个在线宠物商店示例,它的设计和实现为开发者提供了学习数据库驱动应用开发的良好实践。 首先,让我们深入了解一下iBATIS框架。iBATIS的核心理念是将SQL与Java代码分离,通过XML或...

    iBATIS_JPetStore-4.0.5

    iBATIS_JPetStore-4.0.5 是一个基于Java的开源示例项目,它展示了如何使用iBATIS框架来构建一个完整的电子商务应用程序。iBATIS是一个数据映射框架,它简化了Java应用程序与数据库之间的交互,允许将SQL查询直接嵌入...

    iBatis-JPetStore-5.0

    iBatis的核心配置文件(通常为`sqlmapconfig.xml`)包含了数据源、事务管理器以及SQL映射文件的引用。在`sqlmapconfig.xml`中,你可以定义多个数据源,以适应多数据库环境。 **4. SQL映射文件** SQL映射文件(如`*....

    ibatis用xml配置文件配置使用

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

    Spring+ibatis 保留ibatis事务的配置

    给定的XML配置文件展示了如何在Spring中配置ibatis数据源以及ibatis事务管理器。首先,注释掉的`BasicDataSource`部分是用来配置数据源的,这里没有启用,而是选择了使用JNDI数据源。实际生产环境中,通常会使用...

    ibatis入门,Ibatis开发指南,JPetStore-5.0

    - SQL Map:SQL Map是iBatis的主要配置文件,其中包含了SQL查询、存储过程和其他数据库交互的定义。 - Mapper:Mapper接口是Java代码中与SQL Map对应的接口,通过MyBatis的注解或XML配置文件将SQL与接口方法绑定。...

    spring+ibatis事务的配置

    很好的spring+ibatis事务的配置文档.

    jpetstore4.0 (spring+struts+ibatis)

    《基于Spring、Struts和iBatis的jpetstore4.0详解》 jpetstore4.0是一款经典的电子商务示例应用,它采用Spring、Struts和iBatis这三个核心框架构建,展示了如何在Java环境下实现一个完整的MVC(Model-View-...

    IBatis.net 配置各种数据库

    《IBatis.net 配置各种数据库详解》 在软件开发中,数据库的连接与操作是不可或缺的一环。IBatis.net,作为一个轻量级的持久层框架,为开发者提供了灵活的数据映射功能,使得数据库操作变得更为简单。本文将详细...

    ibatis 中sqlMap配置

    在 iBatis 框架中,SQLMap配置是整个应用程序的核心部分,占据了大部分的开发工作。下面将详细解析 iBatis 中SQLMap配置的关键知识点: 1. **命名空间(Namespace)**: 命名空间是iBatis配置中的一个重要概念,它...

    ibatis和hibernate配置以及比较

    iBatis的配置通常包括创建SqlMapConfig.xml文件,定义数据源、事务管理器以及映射文件(Mapper XML)。映射文件中包含具体的SQL语句和结果集映射,使得数据与Java对象之间能够进行绑定。 相比之下,Hibernate是一个...

    ibatis总配置和映射配置.txt

    此文本主要是关于ibatis总配置和映射配置和一些需要主要的细节。

    ibatis 配置文件详解

    ### ibatis配置文件详解 #### 一、ibatis概述 ibatis,又称MyBatis,是一种优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。ibatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。ibatis可以...

    学习ibatis很好的例子JPetStore

    学习ibatis很好的例子JPetStore学习ibatis很好的例子JPetStore学习ibatis很好的例子JPetStore学习ibatis很好的例子JPetStore学习ibatis很好的例子JPetStore

    SPRING IBATIS 保留IBATIS事务的配置方式

    根据提供的文件信息,本文将详细解析Spring与iBatis整合时如何保留并使用iBatis事务管理机制,以及如何在应用程序中实现手动控制事务的方法。 ### Spring与iBatis整合 Spring框架是一个全面的企业级应用开发框架,...

    jpetstore-ibatis

    《基于Ibatis的JPetStore实战解析》 在IT领域,特别是Java开发中,JPetStore经常被用作示例项目来演示和学习各种技术框架的使用。本篇将深入探讨"jpetstore-ibatis"这个项目,它是对经典的JPetStore应用的重构,...

    动态ibatis查询语句配置

    动态查询语句配置是Ibatis的一个重要特性,它允许我们在运行时根据业务需求构建灵活多变的SQL语句。这篇博文主要探讨的是如何在Ibatis中设置和使用动态SQL,以便实现更高效、更灵活的数据查询。 首先,我们需要理解...

    ibatis 实例 配置 源码

    ibatis 实例 配置 源码 依赖包 ibatis-2.3.4.726.jar commons-logging-api.jar commons-logging-1.1.jar commons-dbcp-1.2.2.jar commons-pool.jar

    ibatis配置文件信息

    ### ibatis配置文件信息 #### 一、简介 在Java开发领域中,ibatis(现称为MyBatis)是一款优秀的持久层框架,它通过XML或注解的方式将接口方法与SQL语句绑定起来,实现对象关系映射(ORM)功能。ibatis的主要优势...

    Ibatis的应用和配置

    下面,我们将详细探讨Ibatis的配置文件、映射文件以及其在实际应用中的使用。 一、Ibatis配置文件 Ibatis的主要配置文件是`mybatis-config.xml`,它是整个系统的全局配置文件。这个文件中包含了数据源、事务管理器...

Global site tag (gtag.js) - Google Analytics