问题:mybatis collection 两个表 字段名称相同 数据被覆盖
解决方法:在SQL中取一个不同的别名加以区分
示例:
<resultMap type="Desk" id="resultUserMap">
<result property="DESK_ID" column="DESK_ID" />
<result property="NAME" column="NAME" />
<result property="REMARK" column="REMARK" />
<collection property="books" ofType="Book" column="DESK_ID">
<id property="BOOK_ID" column="BOOK_ID" />
<result property="NAME" column="bNAME"/>
<result property="REMARK" column="bREMARK"/>
<result property="PRICE" column="PRICE"/>
</collection>
</resultMap>
<select id="getBooksByDesk" resultMap="resultUserMap" parameterType="String">
SELECT d.DESK_ID,d.NAME,d.REMARK,b.BOOK_ID,b.NAME as bNAME,b.REMARK as bREMARK,b.PRICE
FROM tb_desk d,tb_book b
WHERE b.desk_id=d.desk_id AND d.desk_id=#{desk_id}
</select>
分享到:
相关推荐
`RuleVO` 类中包含了一个`idDetail`字段,它用于关联到`DetailVO`中的`idDetail`字段,从而建立两个类之间的联系。 #### resultMap配置 接下来,在MyBatis的映射文件中定义了`resultMap`元素,用于描述数据库结果...
在MyBatis中,`batis-3-config.dtd` 和 `mybatis-3-mapper.dtd` 是两个至关重要的DTD(Document Type Definition)文件,它们定义了MyBatis配置文件和映射文件的结构和语法。 首先,我们来看`batis-3-config.dtd`。...
学生信息表(student)字段名称字段类型字段长度主键/外键描述idvarchar10主键学生编号namevarchar20学生姓名gendervarchar2性别majorvarchar20专业课程表(lesson)字段名称字段类型字段长度主键/外键描述...
- **定义**:一对一关系指的是两个表中的记录互相独立,每一条记录在另一表中都有且仅有一个匹配的记录。例如,一个身份证对应一个公民,一个公民对应一个身份证。 - **建表原则**:一对一关系可以通过两种方式...
3. **连表查询**:使用SQL的`LEFT JOIN`语句来实现两个表的关联查询。在本例中,通过员工表和部门表的关联,实现了员工与其部门信息的整合。 4. **测试用例的重要性**:通过编写测试用例来验证Mybatis映射配置的...
MyBatis会根据配置自动执行JOIN查询,将两个表的数据合并到一个对象中。在`chapter10_oneToOne`文件中,你可以找到相关的示例代码和解释,了解如何配置和使用这种映射。 接着,我们讨论**一对多**(OneToMany)关联...
1. **关联表(Association)**:当两个实体间存在多对多关系时,通常会创建一个关联表,用于存储这两个实体的主键组合,作为它们的关联纽带。 2. **联合主键(Composite Key)**:由于多对多关系表通常由两个外键...
中间表的处理通常涉及两个`<collection>`标签,分别表示两个关联的实体集合。 ### 嵌套查询与嵌套结果 1. **嵌套查询**(Nested Queries):在SQL查询中,通过子查询来获取关联数据。这种方式会产生多个数据库查询...
当需要向SQL语句传入两个或更多参数时,可以使用索引的方式来指定参数的位置。例如,通过`String`类型的变量`xxId`和`xxCode`来查询`XXXBean`对象列表: ```java public List<XXXBean> getXXXBeanList(String xxId,...
Mybatis是一个优秀的Java持久层框架,它允许开发者将SQL语句直接写在XML配置文件或者Mapper接口中,从而简化了DAO(数据访问对象)层的开发工作。在处理多参数查询时,Mybatis提供了灵活的方式。 1. **Map参数传递*...
1. 在MyBatis 里面创建两个源码目录,分别为 src_user,test_src, 用如下方式建立,鼠标右键点击 JavaResource. 2. 设置mybatis 配置文件:Configuration.xml, 在src_user目录下建立此文件,内容如下: 程序代码 程序...
`<collection>`子标签用于指定集合属性,`property`表示Java类中的字段名,`select`属性则是用来查询从表数据的SQL语句。 例如: ```xml <collection property="courses" ofType="Course" javaType=...
例如,假设我们有两个表:user和address,user表中有一个字段address_id,关联到address表的id字段。我们可以在User实体类中添加一个Address对象,并在Mapper文件中使用association标签进行结果集映射。 ```java ...
【标题】"MyBatis高级查询+JFreeChart热点"是一个综合的学习项目,它涵盖了数据库操作和数据可视化两个重要领域。MyBatis是Java开发中常用的一个持久层框架,而JFreeChart则是一个用于创建高质量图表的库。下面将...
在MyBatis中,有两个重要的DTD(文档类型定义)文件,即`mybatis-3-config.dtd`和`mybatis-3-mapper.dtd`,它们在MyBatis的配置和映射文件中起到关键作用。 `mybatis-3-config.dtd`文件是MyBatis配置文件的DTD,...
假设我们有两个实体类,一个是`User`,另一个是`Address`,`User`表中有一个字段`addressId`是`Address`表的主键。配置如下: ```xml <!-- User的基本属性映射 --> <!-- ... --> <!-- 一对一关联配置 --> ...
7. **association**和**collection**:这两个元素用于处理复杂的对象关系映射,例如一对一和一对多的关系。它们可以包含nestedSelect、nestedResultMap等属性,定义如何获取关联数据。 8. **typeHandler**:用于...
3. **创建表对应的实体类**:为每一个数据库表设计一个Java实体类(POJO),该类用来映射数据库表的每一项数据。实体类的设计应遵循一定的规范,如使用驼峰命名法、提供getter和setter方法等。 4. **总的配置文件与...
- MyBatis提供了本地缓存和二级缓存两种方式,可以提高数据读取速度。本地缓存只存在于SqlSession生命周期内,而二级缓存可以跨SqlSession共享数据。 6. **插件支持**: - MyBatis允许开发者编写拦截器插件,对...