`
小杨学JAVA
  • 浏览: 901591 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ibatis 的关联查询sqlxml配置-多对一的配置

 
阅读更多

一个用户表,有id,name,groupid等

一个用户组表 有id,name,

用户表和用户组表是多对一的关系

sqlxml配置如下:

 

<sqlMap namespace="Users">
	<typeAlias alias="Users" type="com.ch.entity.user.Users" />
	<typeAlias alias="Group" type="com.ch.entity.user.Group" />
	<resultMap class="Users" id="resultUsers">
		<result column="USER_ID" property="id" />
		<result column="LOGIN_NAME" property="loginName" />
		<result column="SHOW_NAME" property="showName" />
		<result column="PASS_WORD" property="password" />
		<result column="CREATE_TIME" property="createTime" />
		<result column="GROUP_ID" property="groupId" />
		<result column="ADMIN_FLG" property="adminFlag" />
		<result column="b.ID" property="group.id" />
		<result column="b.GROUP_NAME" property="group.groupName" />
		<result column="b.HIDE_FLG" property="group.hideFlag" />
	</resultMap>

	<select id="selectUserByIdAndPass" parameterClass="Users" resultMap="resultUsers">
		select
			a.USER_ID
			,a.LOGIN_NAME
			,a.PASS_WORD
			,a.SHOW_NAME
			,a.PASS_WORD
			,a.CREATE_TIME
			,a.GROUP_ID
			,a.ADMIN_FLG
			,b.ID
			,b.GROUP_NAME
		from
			table_user as a
			,table_group as b
		where
			LOGIN_NAME = #loginName#
		and
			PASS_WORD = #password#
		and
			b.ID = a.GROUP_ID
	</select>
	<select id="selectAllUser" parameterClass="Users" resultMap="resultUsers">
		SELECT
			a.USER_ID
			,a.LOGIN_NAME
			,a.PASS_WORD
			,a.SHOW_NAME
			,a.PASS_WORD
			,a.CREATE_TIME
			,a.GROUP_ID
			,a.ADMIN_FLG
			,b.ID
			,b.GROUP_NAME
			,b.HIDE_FLG
		FROM
			table_user as a
			,table_group as b
		WHERE
			b.ID = a.GROUP_ID
		ORDER BY
			a.USER_ID DESC
	</select>
	<select id="selectUserByGroupId" parameterClass="int" resultMap="resultUsers">
		SELECT
			a.USER_ID,
			a.LOGIN_NAME,
			a.SHOW_NAME,
			a.PASS_WORD,
			a.CREATE_TIME,
			a.GROUP_ID,
			a.ADMIN_FLG,
			b.ID,
			b.GROUP_NAME,
			b.DISPLAY_ORDER,
			b.HIDE_FLG
		FROM
			table_user AS a
		LEFT JOIN 
			table_group AS b 
				ON b.ID = a.GROUP_ID
		WHERE
			a.GROUP_ID = #groupId#
		ORDER BY
			USER_ID DESC
	</select>

 需要说明的是:sql语句中查询哪些字段。在<resultMap class="Users" id="resultUsers">中就要配置哪些字段,并对应多的一端的属性

分享到:
评论

相关推荐

    ibatis用xml配置文件配置使用

    1. **创建XML配置文件**:在项目中创建一个名为`mybatis-config.xml`的文件,这是iBATIS的全局配置文件,用于定义数据源、事务管理器等。同时,也需要为每个Mapper创建单独的XML文件,如`UserMapper.xml`,其中包含...

    iBATIS-SqlMaps-2-Tutorial_en.rar

    1. **SqlMapConfig.xml配置文件**:这是iBATIS的全局配置文件,用于定义数据源、事务管理器、SqlMapClient以及其他的配置属性。在这个文件中,你可以指定SqlMap的路径,以便iBATIS能够找到并加载它们。 2. **SqlMap...

    iBATIS-SqlMaps-2-Tutorial

    iBATIS-SqlMaps允许开发者直接编写SQL语句,这意味着可以利用SQL的强大功能来处理复杂的查询需求,同时也提供了更少的限制,例如表每类、多表每类或多类每表等关系。 ### 三、准备使用SQLMaps 在开始使用SQLMaps...

    iBATIS-SqlMaps-2_cn.pdf

    SQL Maps作为iBATIS的重要组成部分,通过XML配置文件,为Java对象和数据库SQL语句建立映射关系,从而实现了数据访问层的解耦。 在XML描述文件中,SQL Maps定义了Java Bean、Map实现以及基本数据类型的包装类如何与...

    ibatis-sqlmaps-2_cn

    通过XML配置文件或者注解,开发者可以定义SQL语句、存储过程以及复杂的映射,避免了直接在Java代码中编写SQL的繁琐和复杂性。 在《ibatis-sqlmaps-2_cn》中,你将会学习到如何设置和配置IBATIS环境,包括引入必要的...

    ibatis多对多关系(详细)

    在本文档中,我们将详细介绍iBatis在处理多对多关系时的配置和实现。 多对多关系 多对多关系是一种常见的关系数据库设计模式,用于描述两个实体之间的多对多关系。在本例中,我们将使用学生(Student)和教师...

    iBATIS-SqlMaps-2 PDF文档资料中文

    首先,iBATIS的核心概念是SqlMap,它是一个XML配置文件,用于定义SQL语句和它们的参数映射。在iBATIS-SqlMaps-2中,SqlMap配置文件包含了各种类型的SQL语句,如SELECT、INSERT、UPDATE和DELETE,以及对应的参数和...

    ibatis 一对多 多对多完整映射

    总结,iBATIS的一对多和多对多关系映射是通过XML映射文件和自定义SQL查询实现的。理解这些配置和相关的源码有助于优化数据访问性能,同时使用合适的工具能提高开发效率。在实际项目中,务必根据具体需求选择合适的...

    iBATIS-SqlMaps中文教程集合

    - 多表关联查询:讲解如何处理一对一、一对多、多对多等关系的查询。 - 异常处理与事务管理:介绍如何配置和控制事务,以及处理可能出现的异常情况。 4. **高级篇** - MyBatis(iBATIS的升级版)简介:简述...

    iBATIS-3-User-Guide

    - **关联 (association)**:处理一对一或多对一的关系。 - **集合 (collection)**:处理一对多的关系。 - **判别器 (discriminator)**:根据结果集中的某列值决定如何映射结果。 #### 九、缓存 - iBATIS 支持二级...

    iBATIS-XmlParser

    6. **&lt;resultMap&gt;:** 用于定义查询结果到Java对象的映射,可以处理一对一、一对多、多对多的关系映射。 **二、XMLParser的工作原理** 1. **初始化解析:** 当iBATIS加载XML配置文件时,XMLParser首先会进行XML文档的...

    ibatis实战之一对多关联(源代码)

    在服务层或DAO层,通过SqlSessionFactory创建SqlSession,调用`selectList`方法,传入SQL查询ID,iBatis会自动处理一对多的关联,将数据填充到对应的Java对象中。 ```java SqlSession sqlSession = ...

    Ibatis一对一映射提示

    一对一映射是iBATIS中处理关联关系的一种方式,它允许你在查询一个实体对象时,同时获取与其关联的另一个实体对象。这种映射通常涉及到主表和从表,主表中的一条记录对应从表中的唯一一条记录。 **配置一对一映射:...

    ibatis多表查询

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

    Ibatis多表查询

    为了演示Ibatis的多表查询功能,本文档采用了一个简单的例子:一个图书 (`book`) 表和一个用户 (`user`) 表,其中图书表与用户表之间存在一对多的关系。这意味着每本书可以有多个作者。 **图书表 (`book`) 结构:** ...

    ibatis 一对多

    本文将深入探讨`iBatis` 中的一对多映射关系,以及如何通过源码理解和使用这个特性。 一对多映射是数据库关系模型中的常见概念,指的是一个父表(如部门表)可以对应多个子表(如员工表),每个部门可以有多个员工...

    ibatis配置文件模板

    - `&lt;resultMap&gt;`:定义复杂对象的映射,可以处理一对一、一对多、多对一等关联关系。 在实际开发中,Ibatis允许通过动态SQL来构建灵活的查询,比如`&lt;if&gt;`、`&lt;choose&gt;`、`&lt;when&gt;`、`&lt;otherwise&gt;`、`&lt;where&gt;`、`...

    ibatis-in-action

    - **概念介绍**:映射语句是iBATIS的核心概念之一,用于关联SQL语句与Java对象。 - **示例展示**:通过具体的例子来说明如何定义和使用映射语句。 #### 2.3 非查询语句执行 - **执行机制**:介绍如何在iBATIS中执行...

Global site tag (gtag.js) - Google Analytics