`

mybatis之类似级联功能的使用( 转)

 
阅读更多
在spring+mybatis开发中,经常会遇到需要子列表查询的时候,hibernate中对于级联查询应用得比较多,它本身自带的一对多,多对一等映射可以完整的实现级联。在mybatis中,没有级联的概念,但是可以利用集合来实现类似的功能。下面就来看下具体的用法。
这里以product产品为例。
一个产品可以包含多条评论。这时就可以利用mybatis中的集合来实现。
首先简历product的bean类
public class Product  implements Serializable{

  
    private static final long serialVersionUID = 1L;
    private int id;
    private int productTypeId;
    private String name;
    private String description;
    private List<Comment> comments; //所以相关评论列表
    。。。。//以下get set方法略
}
然后建立评论的bean类,这里省略。。。
下面就是在产品类的ProductMapper.xml中配置映射关系。
首先写个返回类型
<resultMap type="Product" id="result_product">
        <result property="id" column="id"/>
        <result property="productTypeId" column="product_type_id"/>
        <collection property="comments" column="id" select="com.bjk.apes.dao.CommentMapper.getCommentByProductId"/>
    </resultMap>
其中collection就表示返回的comment列表类型。

然后在select中键入这个resultMap
<select id="getProductById" resultMap="result_product" parameterType="String">
       select *
       from product
       where id=#{id}
    </select>

这样返回的product对象中就包含了所有的评论。是不是和hibernate一样方便啊。
分享到:
评论

相关推荐

    mybatis关联/级联以及动态sql

    在关联和级联查询以及动态SQL方面,MyBatis提供了强大的功能,使得开发人员能够更加灵活地处理数据库交互。 首先,我们来探讨MyBatis中的关联(Association)和级联(Cascading)。关联通常用于描述一个实体对象与...

    MyBatis自定义映射 级联属性操作.zip

    MyBatis的动态SQL功能非常强大,可以在XML映射文件中使用条件判断、循环等元素来构建动态的SQL语句。常见的动态SQL元素包括: - ****:根据条件决定是否包含某段SQL。 - ****(when/otherwise):类似Java中的...

    mybatis 基础代码(非spring)

    - `select`:查询操作可以是单个记录或多个记录,可以使用`selectOne`或`selectList`方法,同时可以利用MyBatis的动态SQL功能进行条件判断。 5. **关联查询**: - MyBatis支持一对一、一对多、多对多等关联查询。...

    Mybatis的一些实践

    例如,使用`if`、`choose`(类似switch)、`when`、`otherwise`、`trim`(去除多余前缀或后缀)、`where`(智能添加where关键字)等标签,可以根据不同的条件生成不同的SQL片段。 五、参数映射与结果映射 1. 参数...

    mybatis练习

    8. **动态SQL**:MyBatis的动态SQL功能非常强大,可以在XML映射文件中使用条件语句、if标签、choose标签(类似switch语句)、when标签、otherwise标签等,实现灵活的SQL构建。 9. **缓存机制**:MyBatis内置了两级...

    使用MyBatis实现基本的CRUD操作.zip

    MyBatis是一个优秀的...在实际应用中,MyBatis还支持级联操作、缓存机制、事务控制等功能,使得数据库操作更加灵活高效。通过熟练掌握MyBatis的基本CRUD操作,开发者能够更好地管理和维护数据,提升项目的开发效率。

    Mybatis知识点整理

    五、Mybatis的级联操作 1. OneToMany:一对多关联映射,通常用于父表引用子表的情况。 2. ManyToOne:多对一关联映射,子表引用父表的情况。 3. OneToOne:一对一关联映射,两个表中的记录一一对应。 4. resultMap:...

    mybatis 测试练习项目

    在本测试练习项目中,我们将深入理解MyBatis的核心功能和常见操作,如增删改查(CRUD)以及级联查询。项目采用的是MyBatis的v3.2.2版本。 首先,`test.sql`文件通常是数据库初始化脚本,用于创建测试用的表结构和...

    36道面试常问的MyBatis面试题!.zip

    28. **MyBatis如何处理级联更新和级联删除?** 在ResultMap中配置关联对象的cascade属性,设置为“all-delete-orphan”或“update”。 29. **MyBatis如何进行分库分表操作?** 可以使用MyBatis Plus、...

    mybatis入门指导.docx

    MyBatis 是一款非常出色的持久层框架,它的核心优势在于能够支持自定义 SQL 语句、存储过程以及高级映射等功能。通过使用 MyBatis,开发者可以避免编写大量的 JDBC 代码和手动设置参数及获取结果集的操作。MyBatis ...

    mybatis-paramDemo.zip

    9. **级联调用**:在 MyBatis 中,可以通过 association 和 collection 元素处理一对多或一对一的关系。例如,查询用户时同时获取其所有订单信息。 通过 "mybatis-paramDemo" 示例,你可以实践以上知识,更好地理解...

    MyBatis 36道面试题和答案.docx

    MyBatis的动态SQL功能允许开发者在XML映射文件中使用类似HTML标签的语法来构建SQL。常用的动态SQL标签包括trim、where、set、foreach、if、choose、when、otherwise和bind。动态SQL的执行依赖于OGNL(Object-Graph ...

    Mybatis增删改查实例(含联合查询)

    使用`resultType`或`resultMap`属性指定映射的Java类,Mybatis会自动将每一行数据转换为对应的Java对象。 5. **映射文件(Mapper XML)**: 映射文件是Mybatis的核心部分,它包含了SQL语句和结果映射。通过`...

    mybatis技术文档

    MyBatis 是一款优秀的持久层框架...以上只是 MyBatis 中的一部分关键知识点,实际上 MyBatis 还包含了更多高级特性,如缓存、级联操作、延迟加载等。在实际开发中,熟练掌握这些功能可以极大地提升开发效率和代码质量。

    spring 3.0.4 +hibernate3.6+mybatis3.0.4+struts 2.1.8+freemark整合

    Hibernate通过HQL(Hibernate Query Language)提供了一种与SQL类似的查询语言,并且支持级联操作和缓存机制,大大简化了数据库操作。 **MyBatis 3.0.4** 是一个轻量级的持久层框架,它允许开发者编写SQL语句并与...

    sqltoy-orm框架系统是比hibernate+myBatis更加贴合项目的orm框架.rar

    sqltoy-orm是比hibernate+myBatis(plus)更加贴合项目的orm框架(依赖spring),具有jpa式的对象CRUD的同时具有比myBatis(plus)更直观简洁性能强大的查询功能。 支持以下数据库: oracle 11g+ db2 9.5+,建议从10.5 开始...

    第二期2020字节跳动面试题及解析.pdf

    动态SQL是Mybatis强大功能之一,它允许在XML文件中编写条件判断逻辑,并根据条件动态拼接SQL语句。常用的动态SQL元素包括if、choose、where、set、foreach等。 #### 2.15 Mybatis插件机制 Mybatis允许开发者使用...

    [其他类别]简易数据库关系映射框架EasyDBO v0.1.0 测试版_easydbo010.zip

    【简易数据库关系映射框架EasyDBO v0.1.0 测试版】是一个针对Java JSP应用的源码示例,主要用于...在实际项目中,类似的框架如Hibernate和MyBatis也非常常见,因此,熟悉EasyDBO的使用对于未来的职业发展也有积极影响。

Global site tag (gtag.js) - Google Analytics