`

Ibatis 多表查询

阅读更多

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
    "http://ibatis.apache.org/dtd/sql-map-2.dtd">

<sqlMap namespace="XfMaterialInfo">
 <typeAlias alias="xfmaterialinfo" type="com.weboa.xfadminister.model.XfMaterialInfo"/>
 <typeAlias alias="queryXfMaterialInfo" type="com.weboa.xfadminister.model.QueryXfMaterialInfo"/>
 <resultMap id="xfmaterialinfoResult" class="xfmaterialinfo">
   <result property="id"  column="ID"  jdbcType="NUMBER"/>
   <result property="materialinfoId" column="MATERIALINFO_ID"  jdbcType="NUMBER"/>
   <result property="materialInfo" column="MATERIALINFO_ID"  select="getMaterialInfo"/>
   <result property="taskInstId" column="TASK_INST_ID"  jdbcType="NUMBER"/>
   <result property="xfbusinessLettersId" column="XFBUSINESS_LETTERS_ID"  jdbcType="NUMBER"/>
   <result property="xfchildRecordsId" column="XFCHILD_RECORDS_ID"  jdbcType="NUMBER"/>
 </resultMap>
 
 <!-- set the factor for search -->
 <sql id="queryXfMaterialInfoSql">
  <![CDATA[
   1=1
  ]]>
       <dynamic>
      
  <isNotEmpty property="materialinfoId" prepend="and">
   <![CDATA[
   t.MATERIALINFO_ID=#materialinfoId#
   ]]>
  </isNotEmpty>
  <isNotEmpty property="taskInstId" prepend="and">
   <![CDATA[
   t.TASK_INST_ID=#taskInstId#
   ]]>
  </isNotEmpty>
  <isNotEmpty property="xfbusinessLettersId" prepend="and">
   <![CDATA[
   t.XFBUSINESS_LETTERS_ID=#xfbusinessLettersId#
   ]]>
  </isNotEmpty>
  
  <isNotEmpty property="xfchildRecordsId" prepend="and">
   <![CDATA[
   t.XFCHILD_RECORDS_ID=#xfchildRecordsId#
   ]]>
  </isNotEmpty>
 </dynamic>
   </sql>
  
   <!-- search a xfmaterialinfo information through the id of xfmaterialinfo -->
 <select id="getXfMaterialInfo" resultMap="xfmaterialinfoResult" parameterClass="int">
  <![CDATA[
  SELECT
  *
  FROM T_XFMATERIALINFO WHERE ID=#id#
  ]]>
 </select>
 
   <!-- 业务表ID -->
 <select id="getXfMaterialInfoBYBusines" resultMap="xfmaterialinfoResult" parameterClass="int">
  <![CDATA[
  SELECT
  *
  FROM T_XFMATERIALINFO  WHERE XFBUSINESS_LETTERS_ID=#xfBusinessLettersId# ORDER BY MATERIALINFO_ID
  ]]>
 </select>
 
 <!-- search xfmaterialinfo-informations -->
 <select id="browseXfMaterialInfo" resultMap="xfmaterialinfoResult" parameterClass="queryXfMaterialInfo">
  <![CDATA[                   
   SELECT * FROM(SELECT TV.*, ROWNUM rn FROM
   (SELECT t.* FROM T_XFMATERIALINFO t   WHERE
     ]]>
     <include refid="queryXfMaterialInfoSql"/>
     <![CDATA[
      ORDER BY t.ID)TV WHERE ROWNUM<=$endSize$)WHERE rn>$startSize$
        ]]>
 </select>
 
 
 <!-- 根据环节ID  查找信访材料信息集合 -->
 <select id="getXfMaterialInfoByTaskInstId" resultMap="xfmaterialinfoResult" parameterClass="java.util.Map">
  <![CDATA[
   SELECT
   t.*
   FROM T_XFMATERIALINFO t,T_MATERIALINFO m WHERE t.MATERIALINFO_ID=m.id and t.XFBUSINESS_LETTERS_ID=#xfBusinessLettersId# and (m.FORM_TYPE=1 or t.TASK_INST_ID=#taskInstId#)
    ORDER BY t.MATERIALINFO_ID DESC
     ]]>
 </select>
 
 <!-- 根据环节ID  查找信访材料信息集合 -->
 <select id="getXfBasicAndDealMateBYBusines" resultMap="xfmaterialinfoResult" parameterClass="int">
  <![CDATA[
   SELECT
   t.*
   FROM T_XFMATERIALINFO t,T_MATERIALINFO m WHERE t.MATERIALINFO_ID=m.id and t.XFBUSINESS_LETTERS_ID=#xfBusinessLettersId# and m.FORM_TYPE=1
    ORDER BY t.MATERIALINFO_ID asc
     ]]>
 </select>
 
  <select id="getXfMaterialInfoByxfChildRecordId" resultMap="xfmaterialinfoResult" parameterClass="int">
  <![CDATA[
   SELECT
   t.*
   FROM T_XFMATERIALINFO t,T_MATERIALINFO m WHERE t.MATERIALINFO_ID=m.id and t.XFCHILD_RECORDS_ID=#xfChildRecordsId# 
    ORDER BY t.MATERIALINFO_ID asc
     ]]>
 </select>
 
 <!-- get the item number for search -->
 <!-- SELECT COUNT(t.$dbKeyColName) FROM T_XFMATERIALINFO t WHERE -->
 <select id="getXfMaterialInfoCount" resultClass="int" parameterClass="queryXfMaterialInfo">
  <![CDATA[
         SELECT COUNT(1) FROM T_XFMATERIALINFO t WHERE
     ]]>
     <include refid="queryXfMaterialInfoSql"/>
 </select>
 
 <!-- add a xfmaterialinfo information -->
 <insert id="addXfMaterialInfo" parameterClass="xfmaterialinfo">
  <selectKey resultClass="int" keyProperty="id">
         SELECT XFMATERIALINFO_SEQ.NEXTVAL AS ID FROM DUAL
     </selectKey>
 <![CDATA[
 INSERT INTO T_XFMATERIALINFO(
  ID,
  MATERIALINFO_ID,
  TASK_INST_ID,
  XFBUSINESS_LETTERS_ID,
  XFCHILD_RECORDS_ID
  )VALUES(
   #id#,
    #materialinfoId#,
    #taskInstId#,
    #xfbusinessLettersId#,
    #xfchildRecordsId#
    
   )
 ]]>
 </insert>
 
 <!-- update a xfmaterialinfo information -->
 <update id="updateXfMaterialInfo" parameterClass="xfmaterialinfo">
 <![CDATA[
  UPDATE T_XFMATERIALINFO SET
  MATERIALINFO_ID=#materialinfoId#,
  TASK_INST_ID=#taskInstId#,
  XFBUSINESS_LETTERS_ID=#xfbusinessLettersId#,
  t.XFCHILD_RECORDS_ID=#xfchildRecordsId#
  WHERE ID=#id#
 ]]>
 </update>
 
 <!-- 业务表ID -->
 <delete id="deleteXfMaterialInfoBYBusines" parameterClass="int">
  <![CDATA[
   DELETE FROM T_XFMATERIALINFO WHERE XFBUSINESS_LETTERS_ID=#xfbusinessLettersId#
  ]]>
 </delete>
 
 <!-- delete a xfmaterialinfo information -->
 <delete id="deleteXfMaterialInfo" parameterClass="int">
  <![CDATA[
   DELETE FROM T_XFMATERIALINFO WHERE ID=#id#
  ]]>
 </delete>
</sqlMap>

分享到:
评论

相关推荐

    ibatis多表查询

    在Ibatis中,多表查询是一项重要的功能,它允许我们处理复杂的数据库操作,例如一对多、多对一或一对一的关系。在这个例子中,我们将探讨如何使用Ibatis进行一对多的多表查询,以`book`和`user`两个表为例。 首先,...

    Ibatis多表查询

    ### Ibatis多表查询知识点详解 #### 一、数据库表结构设计 为了演示Ibatis的多表查询功能,本文档采用了一个简单的例子:一个图书 (`book`) 表和一个用户 (`user`) 表,其中图书表与用户表之间存在一对多的关系。...

    ibatis多表查询过程

    当我们需要进行多表查询时,iBatis提供了一种高效且易于管理的方式。本文将深入探讨iBatis在处理多表查询时的具体步骤和技巧。 ### 1. iBatis简介 iBatis 是一个基于Java的持久层框架,它简化了数据库访问,并避免...

    Ibatis查询语句里,可以使用多表查询

    ### iBatis 多表查询知识点详解 #### 一、iBatis简介 iBatis 是一款优秀的持久层框架,它将 SQL 映射到 Java 对象,简化了 JDBC 编程过程中的繁琐操作,提高了开发效率。iBatis 的核心功能包括 SQL 映射、动态 SQL...

    主子表查询ibatis

    本文将深入探讨如何在iBATIS中进行主子表查询,以及涉及到的相关技术如一对多关系、日志管理库log4j等。 首先,主子表查询是数据库设计中常见的场景,通常涉及到一个“父”表(主表)和一个或多个“子”表(从表)...

    ibatis配置多表关联(一对一、一对多、多对多

    ibatis配置多表关联(一对一、一对多、多对多

    操作数据库 iBATIS查询

    ### 操作数据库iBATIS查询详解 #### 一、iBATIS中的LIKE查询技巧 iBATIS是一款优秀的Java持久层框架,它简化了基于SQL的程序编写,避免了程序员手动处理结果集和手工编写SQL语句。在进行数据库查询时,LIKE查询是...

    ibatis 单表查询 一对多查询

    Source Database : ibatis_db Target Server Type : MYSQL Target Server Version : 50022 File Encoding : 65001 Date: 2013-05-02 22:49:28 */ SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- --...

    ibatis多对多关系(详细)

    iBatis多对多关系详解 iBatis是一种流行的持久层框架,用于简化Java应用程序...我们使用了三个数据库表来存储学生和教师之间的多对多关系,并使用iBatis来映射数据库表和Java对象。最后,我们实现了DAO来访问数据库。

    Mybatis/ibatiS多表映射 一对一 一对多 extjs前台取值 详细讲解

    首先,我们来看Mybatis或iBatis在XML配置文件中的多表映射。以学生、班级和班主任为例,学生与班级是一对多关系,班级与班主任是一对一关系。在`classInfo-mapper.xml`配置文件中,我们定义了三个`resultMap`:`...

    spring+ibatis 多表

    综上所述,"spring+ibatis 多表"项目涉及了后端的Spring和iBatis框架,它们共同处理数据库交互,特别是涉及到多表关联查询的复杂操作。前端则利用jQuery进行交互设计,包括分页查询的实现。这样的组合提供了一种高效...

    ibatis的多参数查询.doc

    ### ibatis多参数查询解析 #### 一、引言 在使用ibatis(现称为MyBatis)进行数据库操作时,经常会遇到需要处理多个输入参数的情况。然而,默认情况下ibatis只支持单个输入参数,这在实际开发中往往难以满足需求。...

    ibatis动态多条件组合查询

    ibatis动态多条件组合查询 实例 说明

    ibatis做连接查询 .doc

    本文将详细介绍如何使用iBatis进行连接查询。 首先,我们需要理解iBatis的工作原理。iBatis并不是像Hibernate那样完全自动管理数据库操作,而是将SQL语句的编写权交给开发者,这样可以更好地控制查询性能和复杂性。...

    Ibatis复杂查询语句.doc

    总结起来,这个Ibatis查询语句充分展示了Ibatis处理复杂查询的能力,包括动态SQL、子查询、多表联接、条件判断、数据类型映射和迭代处理等功能。在实际开发中,这种灵活性使得Ibatis能够适应各种复杂的业务场景,...

    ibatis的动态查询

    以上内容详细介绍了 ibatis 中动态查询的基本原理及具体实现方法,包括模糊查询、多条件组合查询以及使用 Map 作为参数的高级用法。这些知识点对于深入理解 ibatis 的动态查询机制非常重要,可以帮助开发者更高效地...

    ibatis_动态查询条件

    iBatis 动态查询条件详解 iBatis 是一个基于 Java 的持久层框架,它提供了动态查询条件的功能,可以根据不同的条件生成不同的 SQL 语句。在 iBatis 中,动态查询条件是通过 `&lt;dynamic&gt;` 元素来实现的,该元素可以...

    ibatis下oracle树查询

    例如,假设我们有一个部门表DEPARTMENTS,包含ID(主键)、PARENT_ID(父ID)和NAME(部门名称)字段,可以使用以下SQL语句进行树形查询: ```sql SELECT level, connect_by_root id AS root_id, id, name FROM ...

    IBatis完成单表基本的数据库操作 模糊查询

    通过阅读博客全文,你可能会学习到更多关于如何有效地使用iBatis进行数据库操作和优化查询性能的知识。 综上所述,iBatis提供了一种简单、灵活的方式来处理数据库操作,特别是像模糊查询这样的复杂查询。通过将SQL...

Global site tag (gtag.js) - Google Analytics