一个用户表,有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">中就要配置哪些字段,并对应多的一端的属性
相关推荐
1. **创建XML配置文件**:在项目中创建一个名为`mybatis-config.xml`的文件,这是iBATIS的全局配置文件,用于定义数据源、事务管理器等。同时,也需要为每个Mapper创建单独的XML文件,如`UserMapper.xml`,其中包含...
1. **SqlMapConfig.xml配置文件**:这是iBATIS的全局配置文件,用于定义数据源、事务管理器、SqlMapClient以及其他的配置属性。在这个文件中,你可以指定SqlMap的路径,以便iBATIS能够找到并加载它们。 2. **SqlMap...
iBATIS-SqlMaps允许开发者直接编写SQL语句,这意味着可以利用SQL的强大功能来处理复杂的查询需求,同时也提供了更少的限制,例如表每类、多表每类或多类每表等关系。 ### 三、准备使用SQLMaps 在开始使用SQLMaps...
SQL Maps作为iBATIS的重要组成部分,通过XML配置文件,为Java对象和数据库SQL语句建立映射关系,从而实现了数据访问层的解耦。 在XML描述文件中,SQL Maps定义了Java Bean、Map实现以及基本数据类型的包装类如何与...
通过XML配置文件或者注解,开发者可以定义SQL语句、存储过程以及复杂的映射,避免了直接在Java代码中编写SQL的繁琐和复杂性。 在《ibatis-sqlmaps-2_cn》中,你将会学习到如何设置和配置IBATIS环境,包括引入必要的...
在本文档中,我们将详细介绍iBatis在处理多对多关系时的配置和实现。 多对多关系 多对多关系是一种常见的关系数据库设计模式,用于描述两个实体之间的多对多关系。在本例中,我们将使用学生(Student)和教师...
首先,iBATIS的核心概念是SqlMap,它是一个XML配置文件,用于定义SQL语句和它们的参数映射。在iBATIS-SqlMaps-2中,SqlMap配置文件包含了各种类型的SQL语句,如SELECT、INSERT、UPDATE和DELETE,以及对应的参数和...
总结,iBATIS的一对多和多对多关系映射是通过XML映射文件和自定义SQL查询实现的。理解这些配置和相关的源码有助于优化数据访问性能,同时使用合适的工具能提高开发效率。在实际项目中,务必根据具体需求选择合适的...
- 多表关联查询:讲解如何处理一对一、一对多、多对多等关系的查询。 - 异常处理与事务管理:介绍如何配置和控制事务,以及处理可能出现的异常情况。 4. **高级篇** - MyBatis(iBATIS的升级版)简介:简述...
- **关联 (association)**:处理一对一或多对一的关系。 - **集合 (collection)**:处理一对多的关系。 - **判别器 (discriminator)**:根据结果集中的某列值决定如何映射结果。 #### 九、缓存 - iBATIS 支持二级...
6. **<resultMap>:** 用于定义查询结果到Java对象的映射,可以处理一对一、一对多、多对多的关系映射。 **二、XMLParser的工作原理** 1. **初始化解析:** 当iBATIS加载XML配置文件时,XMLParser首先会进行XML文档的...
在服务层或DAO层,通过SqlSessionFactory创建SqlSession,调用`selectList`方法,传入SQL查询ID,iBatis会自动处理一对多的关联,将数据填充到对应的Java对象中。 ```java SqlSession sqlSession = ...
一对一映射是iBATIS中处理关联关系的一种方式,它允许你在查询一个实体对象时,同时获取与其关联的另一个实体对象。这种映射通常涉及到主表和从表,主表中的一条记录对应从表中的唯一一条记录。 **配置一对一映射:...
在Ibatis中,多表查询是一项重要的功能,它允许我们处理复杂的数据库操作,例如一对多、多对一或一对一的关系。在这个例子中,我们将探讨如何使用Ibatis进行一对多的多表查询,以`book`和`user`两个表为例。 首先,...
为了演示Ibatis的多表查询功能,本文档采用了一个简单的例子:一个图书 (`book`) 表和一个用户 (`user`) 表,其中图书表与用户表之间存在一对多的关系。这意味着每本书可以有多个作者。 **图书表 (`book`) 结构:** ...
本文将深入探讨`iBatis` 中的一对多映射关系,以及如何通过源码理解和使用这个特性。 一对多映射是数据库关系模型中的常见概念,指的是一个父表(如部门表)可以对应多个子表(如员工表),每个部门可以有多个员工...
- `<resultMap>`:定义复杂对象的映射,可以处理一对一、一对多、多对一等关联关系。 在实际开发中,Ibatis允许通过动态SQL来构建灵活的查询,比如`<if>`、`<choose>`、`<when>`、`<otherwise>`、`<where>`、`...
- **概念介绍**:映射语句是iBATIS的核心概念之一,用于关联SQL语句与Java对象。 - **示例展示**:通过具体的例子来说明如何定义和使用映射语句。 #### 2.3 非查询语句执行 - **执行机制**:介绍如何在iBATIS中执行...