用mybatisemybatis一对多关联联后出现异常

实现一对一查询:resultType:使用resultType实现较為简单如果pojo中没有包括查询出来的列名,需要增加列名对应的属性即可完成映射。如果没有查询结果的特殊要求建议使用resultType定义专门嘚po类作为输出类型,其中定义了sql查询结果集所有的字段此方法较为简单,企业中使用普遍 resultMap:需要单独定义resultMap,实现有点麻烦如果对查詢结果有特殊的要求,使用resultMap可以完成将关联查询映射pojo的属性中1.2

多对多查询总结将查询用户购买的商品信息明细清单,(用户名、用户地址、购买商品名称、购买商品时间、购买商品数量) 针对上边的需求就使用resultType将查询到的记录映射到一个扩展的pojo中很简单实现明细清单的功能。 一对多是多对多的特例如下需求:查询用户购买的商品信息,用户和商品的关系是多对多关系需求1:查询字段:用户账号、用戶名称、用户性别、商品名称、商品价格(最常见)企业开发中常见明细列表,用户购买商品明细列表使用resultType将上边查询列映射到pojo输出。 需求2:查询字段:用户账号、用户名称、购买商品数量、商品明细(鼠标移上显示明细)使用resultMap将用户购买的商品明细

之前在做查询开始没有栲虑那么多,就没有做分页;后来随着数据量越来越大不得不对以前的接口改成能分页的。我用的是mybatis自带的分页插件可以在不改变原

列表映射到user对象中。 总结:使用resultMap是针对那些对查询结果映射有特殊要求的功能,比如特殊要求映射成list中包括多个list2

将查询结果按照sql列名pojo屬性名一致性映射到pojo中。场合:

常见一些明细记录的展示比如用户购买商品明细,将关联查询信息全部展示在页面时此时可直接使用resultType將每一条记录映射到pojo中,在前端页面遍历list(list中是pojo)即可 resultMap:

将关联查询信息映射到一个pojo对象中。场合:

为了方便查询关联信息可以使用association将關联订单信息映射为用户对象的pojo属性中比如:查询订单及关联用户信息。

使用resultType无法将查询结果映射到pojo对象的pojo属性中根据对结果集查询遍历的需要选择使用resultType还是resultMap。

将关联查询信息映射到一个list集合中场合:

为了方便查询遍历关联信息可以使用collection将关联信息映射到list集合中,比洳:查询用户权限范围模块及模块下的菜单可使用collection将模块映射到模块list中,将菜单列表映射到模块对象的菜单list属性中这样的作的目的也昰方便对查询结果集进行遍历查询。

如果使用resultType无法将查询结果映射到list集合中

我要回帖

更多关于 mybatis一对多关联 的文章

 

随机推荐