`
longgangbai
  • 浏览: 7308677 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ibatis3的项目使用的Mapping文件使用总结参考(二)

 
阅读更多

MyBatis中文学习网站的

http://www.mybatis.org/core/zh/integration.html

 

 

 


针对in字句中的数组使用方法
<select id="getCpProfileNamesByIds" resultType="string">
  select name from mega_mis_smpp where id in
  <foreach item="ids" index="index" collection="array" open="(" separator="," close=")">
   #{ids}
  </foreach>
 </select>


针对in字句中的Collection使用方法

存储过程的使用:
 <select id="FactoryNumberDao.getNewFactoryCode" resultMap="BaseResultMap" >
  DECLARE @factoryCode varchar(5)
  EXEC P_Factory_Number
  @factoryCode = @factoryCode OUTPUT
  SELECT @factoryCode as factoryCode
 </select>

Ognl的使用:
 <select id="AreaDao.findByPageArea.count"
  resultType="java.lang.Long">
  SELECT count(*) from gs_area
  <include refid="areaDaoDynamicWhere"/>

 </select>
 
 <sql id="areaDaoDynamicWhere">
  <!--
   ognl访问静态方法的表达式
   为@class@method(args),以下为调用框架中的Ognl.isNotEmpty()方法,还有其它方法如isNotBlank()可以使用,具体请查看Ognl类
  -->
  <where>
   <!-- del_flag = '0' -->
   <if test="@Ognl@isNotEmpty(areaCode)">
    and area_code = #{areaCode}
     </if>
   <if test="@Ognl@isNotEmpty(areaName)">
    and area_name like '%${areaName}%'
     </if>
  </where>
 </sql>
sql标签:
 <sql id="Base_Column_List" >
    factory_code, factory_name, factory_user, factory_desc, tel, email, update_time,
    state_flag
  </sql>
  <select id="FactoryDao.selectByPrimaryKey" resultMap="FactoryInfoMap" parameterType="java.lang.String" >
    select
    <include refid="Base_Column_List" />
    from dbo.gs_factory
    where factory_code = #{factoryCode,jdbcType=VARCHAR}
  </select>
 
 
   <select id="LineDao.findByPageLine.count"
  resultType="java.lang.Long">
  SELECT count(*) from gs_line
  <include refid="lineDaoDynamicWhere"/>

 </select>
 
 <sql id="lineDaoDynamicWhere">
  <!--
   ognl访问静态方法的表达式
   为@class@method(args),以下为调用框架中的Ognl.isNotEmpty()方法,还有其它方法如isNotBlank()可以使用,具体请查看Ognl类
  -->
  <where>
   <!-- del_flag = '0' -->
   <if test="@Ognl@isNotEmpty(lineCode)">
    and line_code = #{lineCode}
     </if>
   <if test="@Ognl@isNotEmpty(lineName)">
    and line_name like '%${lineName}%'
     </if>
  </where>
 </sql>
 
 
  <sql id="stationTaskReportChartDynamicWhere">
  <!--
   ognl访问静态方法的表达式
   为@class@method(args),以下为调用框架中的Ognl.isNotEmpty()方法,还有其它方法如isNotBlank()可以使用,具体请查看Ognl类
  -->
               <choose>
                      <when test="endDate!=null and startDate!=null">
                         and  g.plan_task_date BETWEEN #{startDate,jdbcType=TIMESTAMP}  AND #{endDate,jdbcType=TIMESTAMP}
                     </when>
                      <when test="endDate==null and startDate!=null">
                         and  g.plan_task_date >= #{startDate,jdbcType=TIMESTAMP}
                     </when>
                       <when test="endDate!=null and startDate==null">
                          <![CDATA[
                             and  g.plan_task_date <= #{startDate,jdbcType=TIMESTAMP}
                           ]]>
                     </when>
                  </choose> 
                  <if test="stationCodeList!=null">
                              and g.station_code in
                             <foreach item="stationCode" index="index" open="(" close=")"  separator="," collection="stationCodeList">
                                  #{stationCode}
                             </foreach>
                  </if>
                   <if test="userCodeList!=null">
                              and g.user_code in
                             <foreach item="userCode" index="index" open="(" close=")"  separator="," collection="userCodeList">
                                  #{userCode}
                             </foreach>
                  </if>
 </sql>
    
trim标签的使用: 
  <insert id="AssetTypeDao.insert" parameterType="com.easyway.eamsg.assetmgt.domain.AssetTypeInfo" >
    insert into dbo.gs_asset_type
    <trim prefix="(" suffix=")" suffixOverrides="," >
      <if test="assetTypeCode != null" >
        asset_type_code,
      </if>
      <if test="assetTypeName != null" >
        asset_type_name,
      </if>
      <if test="assetTypeDesc != null" >
        asset_type_desc,
      </if>
      <if test="natureFlag != null" >
        nature_flag,
      </if>
      <if test="featureFlag != null" >
        feature_flag,
      </if>
      <if test="codingFlag != null" >
        coding_flag,
      </if>
      <if test="matchFlag != null" >
        match_flag,
      </if>
      <if test="updateTime != null" >
        update_time,
      </if>
      <if test="stateFlag != null" >
        state_flag,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides="," >
      <if test="assetTypeCode != null" >
        #{assetTypeCode,jdbcType=VARCHAR},
      </if>
      <if test="assetTypeName != null" >
        #{assetTypeName,jdbcType=VARCHAR},
      </if>
      <if test="assetTypeDesc != null" >
        #{assetTypeDesc,jdbcType=VARCHAR},
      </if>
      <if test="natureFlag != null" >
        #{natureFlag,jdbcType=CHAR},
      </if>
      <if test="featureFlag != null" >
        #{featureFlag,jdbcType=CHAR},
      </if>
      <if test="codingFlag != null" >
        #{codingFlag,jdbcType=CHAR},
      </if>
      <if test="matchFlag != null" >
        #{matchFlag,jdbcType=CHAR},
      </if>
      <if test="updateTime != null" >
        #{updateTime,jdbcType=TIMESTAMP},
      </if>
      <if test="stateFlag != null" >
        #{stateFlag,jdbcType=CHAR},
      </if>
    </trim>
  </insert>
 set标签的使用
 <update id="AssetTypeDao.update" parameterType="com.easyway.eamsg.assetmgt.domain.AssetTypeInfo" >
    update dbo.gs_asset_type
    <set >
      <if test="assetTypeName != null" >
        asset_type_name = #{assetTypeName,jdbcType=VARCHAR},
      </if>
      <if test="assetTypeDesc != null" >
        asset_type_desc = #{assetTypeDesc,jdbcType=VARCHAR},
      </if>
      <if test="natureFlag != null" >
        nature_flag = #{natureFlag,jdbcType=CHAR},
      </if>
      <if test="featureFlag != null" >
        feature_flag = #{featureFlag,jdbcType=CHAR},
      </if>
      <if test="codingFlag != null" >
        coding_flag = #{codingFlag,jdbcType=CHAR},
      </if>
      <if test="matchFlag != null" >
        match_flag = #{matchFlag,jdbcType=CHAR},
      </if>
      <if test="updateTime != null" >
        update_time = #{updateTime,jdbcType=TIMESTAMP},
      </if>
      <if test="stateFlag != null" >
        state_flag = #{stateFlag,jdbcType=CHAR},
      </if>
    </set>
    where asset_type_code = #{assetTypeCode,jdbcType=VARCHAR}
  </update>
 
  存储过程:
   <select id="SiteAssetsSoftWareNumberDao.getNewsiteAssetsSoftwareCode" resultMap="BaseResultMap" parameterType="com.easyway.eamsg.assetmgt.domain.SiteAssetsSoftWareNumbeInfo" >
  DECLARE @siteAssetsSoftwareCode varchar(13)
  EXEC P_Site_Assets_Software_Number
  @stationCode = #{stationCode,jdbcType=VARCHAR},
  @assetTypeCode = #{assetTypeCode,jdbcType=VARCHAR},
  @siteAssetsSoftwareCode = @siteAssetsSoftwareCode OUTPUT
  SELECT @siteAssetsSoftwareCode as siteAssetsSoftwareCode
 </select>
存储过程2:
  <resultMap id="BaseResultMap" type="com.easyway.eamsg.assetmgt.domain.SparePartsNumbeInfo" >
    <id column="id" property="id" jdbcType="INTEGER" />
    <result column="remarks" property="remarks" jdbcType="VARCHAR" />
    <result column="sparePartsCode" property="sparePartsCode" jdbcType="VARCHAR" />
  </resultMap>
 
 <select id="SparePartsNumberDao.getNewSparePartsCode" resultMap="BaseResultMap" >
  DECLARE @sparePartsCode varchar(17)
  EXEC P_Spare_Parts_Number
  @sparePartsCode = @sparePartsCode OUTPUT
  SELECT @sparePartsCode as sparePartsCode
 </select> 
 

分享到:
评论

相关推荐

    ibatis使用例子,源代码

    **标题与描述解析** 标题"ibatis使用例子,源代码"表明这是一个关于iBATIS(一个持久层...总结来说,这个压缩包提供了一个完整的iBATIS使用实例,对于学习和理解iBATIS的ORM工作原理和实践操作具有很高的参考价值。

    IBATIS参考文档

    ### IBATIS参考文档知识点详述 #### 一、IBATIS简介 - **定义**:IBATIS是一个开源的数据持久层框架,它封装了JDBC API,简化了数据库访问的过程。 - **特点**: - 通过ORM(对象关系映射)机制,使开发者在业务...

    ibatis安装配置

    **Ibatis 安装配置详解** Ibatis 是一个优秀的轻量级 Java ORM(对象关系映射)框架,它允许开发者...对于更详细的使用技巧和 API,建议参考 Ibatis 的官方文档或在线教程,以便更好地理解和利用 Ibatis 的强大功能。

    iBATIS3 用户手册

    在XML配置中,iBATIS 使用一个名为`mybatis-config.xml`的主配置文件来定义数据源、事务管理器以及其他框架设置。配置文件中包含了数据源的信息、映射文件的位置等,映射文件(通常是`.xml`文件)包含了SQL语句和...

    ibatis jar

    【ibatis jar】是关于Java开发中的一个著名ORM框架——iBATIS的讨论。...通过深入学习和使用ibatis-3-core-3.0.0.190.jar中的API,以及参考源代码,开发者可以更有效地利用iBATIS提升开发效率和应用性能。

    ibatis 使用

    - "ibatis 开发指南.pdf":这份指南可能是Ibatis的官方开发手册,涵盖了从安装、配置到实际使用的全方位指导,是学习和使用Ibatis的重要参考资料。 总之,Ibatis作为一款强大的持久层框架,不仅简化了数据库操作,...

    ibatis2.3源码

    3. **code ibatis**:强调这是iBATIS项目的代码,对于熟悉或使用iBATIS的人来说,这是一个重要的标识。 【压缩包子文件的文件名称列表】:"src"通常代表源代码目录,这表明压缩包里包含了iBATIS 2.3的所有源代码...

    xml配置文件自动提示(Spring2.5,Hibernate3.0,Struts2,Ibatis3) Dtd 文件及操作

    通过参考这些文件,开发者可以更好地理解和应用SSH(Spring、Struts2、Hibernate)和Ibatis框架的XML配置,提升开发效率。 总的来说,理解和使用XML配置文件的自动提示以及DTD对于Java Web开发至关重要。它不仅可以...

    ibatis帮助文档

    2. **配置环境**: 设置项目依赖,导入Ibatis库,并配置相应的MyBatis核心配置文件。 3. **编写Mapper**: 创建Mapper接口和对应的XML映射文件,定义SQL语句和结果映射。 4. **使用SqlSession**: 在Java代码中实例化...

    ibatis-2.3.4 开发包 及 官方权威文档(开发指南+入门教程)

    2. **license.txt**:Ibatis 的授权协议文件,详细规定了软件的使用、修改和分发权限。 3. **notice.txt**:可能包含版权和第三方库的使用通知,提醒用户注意相关的法律义务。 4. **jar-dependencies.txt**:列出 ...

    iBATIS 学习 教程

    iBATIS,全称为“Java SQL Mapping Framework”,是一款开源的Java数据访问框架,它简化了数据库与应用程序之间的交互,使得开发者能够将SQL语句直接写在XML配置文件中,从而解耦业务逻辑代码和数据库操作。...

    ibatis开发指南(中英)和demo

    本资料包提供了关于iBATIS的中英双语开发指南以及两个示例项目,对于学习和理解iBATIS的使用具有极高的参考价值。 《iBATIS in Action》是英文版的详细教程,深入浅出地讲解了iBATIS的核心概念、设计思想和实际应用...

    iBATIS框架源码剖析-任钢

    3. **SqlMapConfig.xml**:这是iBATIS的主配置文件,它包含了数据源、事务管理器和SQL映射文件的配置信息。通过这个文件,iBATIS可以连接到数据库并管理事务。 4. **Executor执行器**:iBATIS的核心组件之一,它...

    Ibatis实战英文版书籍和源代码

    《Ibatis实战英文版书籍和源代码》是一个资源包,主要涵盖了Ibatis这一持久层框架的实战指导和配套源码。Ibatis,全称为“Java SQL...对于仍在使用或打算学习Ibatis的程序员来说,这个资源包无疑是一份宝贵的参考资料。

    将Hibernate和iBatis两Orm框架整合,取长补短

    在项目中,`复件 hiTestPro`可能包含了整合后的项目源代码,包括配置文件、DAO接口及其实现、AOP切面等,可以作为学习和参考的资源。通过研究这些代码,可以更好地理解和实践Hibernate与iBatis的整合技巧。 总之,...

    ibatis memcached

    3. **配置MyBatis的SqlMapConfig.xml**:在配置文件中设置二级缓存为Memcached,包括缓存的namespace、id、过期时间等参数。 4. **编写Memcached客户端代码**:根据项目需求,可能需要自定义Memcached客户端,例如...

    jsp+struct+hibernate+ibatis资源集锦珍藏

    对于初学者,可以从基础概念和安装配置开始,逐步学习如何创建JSP页面、搭建Struts框架、配置Hibernate实体以及编写iBatis映射文件。进阶学习者则可以通过示例项目和实战案例,提升在实际开发中的应用能力。 总之,...

    ibatics 官方网站正确实例

    IBATIS开发包使用实例使用出错 ①插入操作时会报SQL错误,原因如下 com.mydomain.data.Account.xml文件的insert部分ACC_EMIAL的后面没有括号,加上即可解决这个问题。 具体请参考网上的一篇博客:...

Global site tag (gtag.js) - Google Analytics