java mybatis 多表联查,多个实体类,如何返回一个List?

如题,*Mapper.xml 里面我是这么写的,

 <resultMap id="BaseResultMap" type="com.steam.entity.Goods" >
        <id column="gid" property="gid" />
        <result column="gname" property="gname" jdbcType="VARCHAR" />
        <result column="desc" property="desc" jdbcType="VARCHAR" />
        <result column="price" property="price" jdbcType="INTEGER"/>
        <result column="status" property="status" jdbcType="INTEGER" />
        <result column="pname" property="pname" jdbcType="VARCHAR" />
        <result column="type_name" property="typeName" jdbcType="VARCHAR" />
        <result column="pid" property="pid" />
        <result column="tid" property="tid"/>
        <result column="model_number" property="modelNumber" jdbcType="VARCHAR" />
        <result column="goods_bianma" property="goodsBianma" jdbcType="VARCHAR" />
        <result column="type_name" property="typeName" jdbcType="VARCHAR" />
        <!-- <result column="goods_img" property="goodsImg" jdbcType="VARCHAR" />  -->
    </resultMap>

        <select id="goodsListAll" resultMap="BaseResultMap">
        select a.*,b.type_name,c.pname from tb_goods a left join tb_product b on a.tid=b.tid left join tb_brand c on a.pid=c.pid
    </select>

Controller层

 @RequestMapping(value="/goodsList",method=RequestMethod.GET)
    public String goodsListAll(HttpServletRequest request){

            List<Goods> glist = this.goodsService.goodsListAll();

            request.setAttribute("glist", glist);

            return "goods/goods_list";
    }

jsp页面:

 <c:forEach items="${glist}" var="g">
                        <tr class="text-c">
                            <td>${g.gid}</td>
                            <td>${g.gname}</td>
                            <td>${g.desc}</td>
                            <td>${g.plist.typeName}</td>
                            <td>${g.price}</td>
                            <td>${g.blist.pname}</td>
                            <td>${g.modelNumber}</td>
                            <td>${g.goodsBianma}</td>
                    </tr>

实体类

 public class Goods {
    private Long gid;

    private String gname;

    private String desc;

    private Double price;

    private Integer status;

    private Long pid;

    private Long tid;

    private String modelNumber;

    private String goodsBianma;


    private List<Product> plist;

    private List<Brand> blist;

还有两个实体类就是Product和Brand,不多说了,现在死活就是不好使,求各位大神帮忙看看

1
扫码支付0.1元 ×
其他相关推荐
【java项目】mybatis中的mapper查询时返回其他实体(多用于多表查询)
&amp;lt;select id=&quot;selectUserorder&quot; resultType=&quot;com.pojo.Orderdetail&quot; parameterType=&quot;java.lang.Integer&quot;&amp;gt; SELECT a.o_status, a.o_no, a.uid, b.p_home, b.p_starttime, b.p_endtime, b.p_...
jpa如何实现像mybatis一样的多表关联查询并返回多表多字段
最近项目一直在用jpa开发,总体来说jpa还是很方便的,较之于mybatis,尤其是做一些简单查询的时候。如果你想查某个表,只需写个entity,写个repository,service里注入一下repository就开始查了。如果你想查某个字段,直接get就行了。开发效率,就一个字,高。 但是对于复杂查询,比如多表多条件查询,头疼事就来了。这里的多条件我是指查询条件的个数不固定,比如最多有五个...
mybatis实现多表联合查询
本文转自:http://www.cnblogs.com/xdp-gacl/p/4264440.html#!comments 一、一对一关联  1.1、提出需求   根据班级id查询班级信息(带老师的信息) 1.2、创建表和数据   创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关系。 1 CREATE TABLE teac
mybatis 多表链接查询后,结果集resultType或resultMap 怎么写
通过多个表关联查询,其结果也含有三个表以上的字段,用resultType 都不知道该写哪个实体类.......纠结 解决方法: 第一:新建议一个你需要的字段的实体类,如下图: 第二:在XXXMapper.xml文件中写对应的&amp;lt;resultMap&amp;gt;.如下图: 第三:查询结果的sql语句关联resultMap即可。 ...
mybatis的多表查询,映射到实体的应用(一)
先来个一对多的案例,一个人有多条评论 person id        name p001   小王 p002   小李 comment ----------------------------------------------------- id        content   personid 3        四点半v    p001 2        第三个
mybatis中如何将多个表的查询结果,放入结果集中返回
首先需要将resultMap进行改造,为了避免对其他sql的影响建议另外定义一个resultMapExtral,避免id相同,然后在resultMapExtral中添加其它表的字段,若多个表中的字段名相同,要对查询结果和resultMapExtral中相同的字段另起别名,最后另外定义一个实体bean接收结果。 定义结果集: &amp;lt;resultMap id=&quot;BaseResultMapExtr...
Mybatis多表联结查询高级结果映射
假设需要联结一个app表和evaluation表 1.在被联结表(这里是evaluation表)的mapper.xml文件里新建一个resultMap,列表中添加需要获取的字段: id="EvaluationJoinMap" type="包名.model.Evaluation" extends="BaseResultMap"> id property="id
Mybatis(五) resultType 多表查询 (包装类)
查看这张时必须有上一张的基础这里使用了包装类,将多个表查询数来的复杂结果存储在包装类中返回回来CREATE DATABASE my_db;CREATE TABLE user( id INT(11) PRIMARY KEY AUTO_INCREMENT, parentId INT(11), sonId INT(11), name VARC
JPQL联表查询,返回结果整合联表的两个实体结果
sql代码@Service @Transactional public class CommentService { @PersistenceContext EntityManager em; @SuppressWarnings("unchecked") public List getGradeStudents() { String sql = "select new com.sys
多表联接查询时接收实体类的设计与选择
未完待续!
Hibernate中关于多表连接查询hql 和 sql 返回值集合中对象问题
昨晚帮同事看代码到凌晨2点多,今早6点醒来发现他发来信息说报空指针错误,实在无法入睡,起来自己测试了一下,控制台还真的报: 2009-4-25 8:12:34 org.apache.catalina.core.ApplicationContext log 信息: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast
mybatis mapper.xml 配置文件多表级联查询返回值映射问题
&amp;lt;resultMap id=&quot;BaseResultMap2&quot; type=&quot;LossesAre&quot;&amp;gt; &amp;lt;id column=&quot;lossesare_id&quot; property=&quot;id&quot; jdbcType=&quot;INTEGER&quot; /&amp;gt; &amp;lt;result column=&quot;lossesare_roomconfigid&quot; propert
mybatis多表联合查询
以前东拼西凑来的,不知道都是哪些链接! User 、Role 的对应关系是,一个用户有多个角色,因此,在 User 的实体中加入一个 Role 的属性 private List roles;对应一对多的关系。   select id="queryForList" resultMap="queryForListMap">          SELECT            
SSM框架之MyBatis(二)--多表查询及查询结果映射
使用MyBatis这一强大的框架可以解决很多赋值的问题,其中对于子配置文件中的小细节有很多需要注意的地方,使用这个框架后主要就是对于配置文件的编写和配置。 今天我写了一个多表查询,表的基本结构如下: 用户表t_user:用户编号uid,账号account,昵称nickname,性别gender 订单表t_order:订单编号oid,下单时间gen_time,总价total_price,用户编号us...
SSM框架(三)——Mybatis多表关联查询
本文介绍ssm框架中mybatis实现多表关联查询的问题。主要修改mapper.xml和Entity定义两个地方,mapper.xml中需要定义返回格式,而Entity里定义关联表类的相互引用等关系。 一、一对一关联  1.1、提出需求   根据班级id查询班级信息(带老师的信息) 1.2、创建表和数据   创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,
多表联查,并且返回一个树形结构关系的List集合并且按时间顺序显示
先说明我遇到的问题如图(&quot;mqtt_disconnect&quot;是设备断开连接上传数据,数据点比较多。&quot;dev_online&quot;是重新连接没有对应多个数据点。从途中看到是一个list集合或者数组,因为“【】”): 下面说一下解决方案:刚刚开始我的思维逻辑是做个循环一点一点查询数据库,放到集合中,当我真正实现这个功能,我很郁闷,查询数据比较缓慢,不是一般的...
Java中使用hql,sql查询--多表查询后的新实体构建方法详解
需要将Query对象setResultTransformer: List list = session.createSQLQuery(sql).setResultTransformer( Transformers.ALIAS_TO_ENTITY_MAP).list(); //此时,每个Object可以转换成一个Map Map map = (Map) list.get(i); map.ge
MyBatis:关联查询——一对多 多表连接、单独查询(详解resultMap)
我们现在数据库里有两个表:Country,Minister,我们现在通过查询Country的cid来得到Minister里的的信息。 两个表如图: Country Minister 一、多表连接查询: 创建接口: Country selectCountryById(int cid); country类 minister类 映射文件: 映射文件 测试类:
mybatis实现多表联查
在大型的系统开发中,设计的表比较多,有时候会用一个条件实现多表联查,这时候用union all会方便很多: &amp;lt;!-- 获取撤单列表 --&amp;gt;    &amp;lt;select id=&quot;queryList&quot; parameterType=&quot;recallDealBean&quot; resultType=&quot;hashmap&quot;&amp;gt;    select     fs.APP_SNO_ as &quot;oappSn...
Java 多对多 表联合查询 中 根据 条件 查询指定内容
Java 多对多 表联合查询 中 根据 条件 查询指定内容 关于 多对多 表联合查询 中的 mapper 层的部署看一下链接 https://blog.csdn.net/YKenan/article/details/88910730 很神奇,用了四次 for 循环 下面的代码表示: 有一个类:Y 有另一个类:Kenan 一个 Y 可以含有多个 Kenan 一个 Kenan 可以含有多个 Y...
利用SSM(springmvc+spring+mybatis)实现多表联合查询
一、数据库                           Author表 (authorid主键)                                                                    NewsInfo表(newsno主键)                                     NewsType表(news_typei
hibernate 实现多表连接查询 查询结果映射到自定义类中
Hibernate主要支持两种查询方式:HQL查询和Criteria查询。前者应用较为广发,后者也只是调用封装好的接口。 现在有一个问题,就是实现多表连接查询,且查询结果集不与任何一个实体类对应,怎么解决呢? 举个例子: 现在有两个表,一个users用户表, 一个goods商品表,每个用户可以有多个商品,而一个商品只能对应一个用户。 users表中的字段:userId,userName,t
MyBatis 多表联合查询及优化
序 这篇文章我打算来简单的谈谈 mybatis 的多表联合查询。起初是觉得挺简单的,没必要拿出来写,毕竟 mybatis 这东西现在是个开发的都会用,而且网上的文章也是一搜罗一大堆,根本就用不着我来重复。但是吧,就我前几天在做一个多表联合查询的时候,竟然出了很多意想不到的问题,而且这些问题的出现,并不是对 mybatis 不了解,而是在用的过程中会或多或少的忽略一些东西,导致提示各种错误
spring,springmvc,mybatits集成实例--多表关联查询
spring,springmvc,mybatits集成实例–多表关联查询相比于ssh,ssm框架更加简洁,轻巧,并且sql语句和代码耦合更低。本文给出一个ssm集成多表查询的实例完整代码下载链接: http://download.csdn.net/download/yhhyhhyhhyhh/9965943环境 eclipse4.7.0,jdk1.8,maven,spring4.3.0,myba
spring boot jpa多表查询展示实体的方法
针对jpa中多表关联查询展示的办法: 1.就是利用hibernate的oneToMany跟ManyToOne的对应关系配置查询,但是这种情况对于数据库的压力较大,一般不采用 2.就是定义Bean,然后repository中配置查询返回实体类,repository中支持Entity的关联查询,查询出的字段赋值new的对象中进行返回处理。 @Data public class Temp
【Hibernate】Hibernate多表查询后,将查询结果转化为实体
在《【Hibernate】Hibernate的多表查询》(点击打开链接)一文中,已经介绍过,如果利用HQL语句进行多表查询,摆脱查完一张表又取其中的结果再查另一张表的问题。然而,利用HQL语句查询出来的东西,是一个Object数组,我们要进一步对其处理,将其转化为表的实体的实例。 有如下的一个Java工程如《【Hibernate】Hibernate3.x独立运行时的Failed to load
Mybatis中多表联查,查询出来的字段出现重名,造成数据异常的解决方法!
在做一对多出现的问题,引发的思考:当数据库表中,主表的主键id和明细表的中的字段名相同时怎么办?Mybatis进行自动映射赋值的时候会不会出现异常?                      注意:Mybatis中做多表联查的时候,不管是一对一、一对多、一对多对多:多对多:都不能有字段重名的情况:不管是主键还是普通字段。一旦字段重名的话,就会造成数据少自动赋值,或者覆盖,甚至重复赋值!规避和解决此...
SQL多表查询结果返回实体结果集
事先要用zhujie声明@Override public List getDashboardData() throws Exception{ Session session = sessionFactory.getCurrentSession(); if (session == null) { session = sessionFac
Spring Data Jpa多表查询返回自定义实体
比如来看一下这样的一条SQL语句,这是一个三张表的多表查询,显然在JPA中用一个实体类是接受不了这些参数的 select t1.id as chapterId , t1.name as chapterName , t2.id as unitId, t2.name as unitName , t3.id as lessonId, t3.name as lessonName from t_c...
使用dbUtil多表查询获取的数据涉及多个对象时的封装
我们使用dbUtil查询数据库时,一般是单表查询,封装数据都是单个对象,可以直接封装,当碰到更复杂的数据,比如从一个sql语句同时查询商品信息和客户信息封装到一个订单的对象中,订单对象中的属性如果是商品的属性,字段可以和查询数据库返回的数据的字段一一对应,那么直接封装没问题,点击查看一般方法但是如果商品对象作为订单的成员变量的话,直接封装时属于商品的属性找不到对应字段导致封装失败,此时可用以下方法
Mybatis的多表查询
一对一查询使用ResultType在这种方法中,一般就是新建一个扩展类,用来将需要连接的两个对象的属性都包括其中,然后设置ResultType就是这个新建对象的类型 需求:查询每一个订单的用户的用户名,这是一个一对一的问题,需要连接user表和orders表 新建一个OrdersCustomer表,其继承了orders类,并新增加了一个username的属性public class Orders
【javaweb:多表查询】多表查询的一个例子
1、首先有两个表,一个orderitem表(从表),一个product表(主表)如下图所示orderitem表:product表:2、如果要查询两个表中指定列的信息,比如orderitem表中的count,subtotal,product表中的pname,pimage等那么就涉及到多表查询,而且对查询的结果封装的时候要用:Map&amp;lt;String, Object&amp;gt;而且sql语言要注意他的书...
Mybatis—单表数据装配—ResultMap的联合查询
1.ResultMap进行单表数据装配 :    问题:字段名和实体类的属性名不一致,数据无法自动填充  解决:使用ResultMap进行手动声明填充    使用:     在select标签上使用ResultMap属性引入外部声明的ResultMap    在声明ResultMap中:                                       &amp;lt;resultM...
VO(俩表之间的连接查询)
1.VO是用new关键字创建,由GC回收的。 2.VO是值对象,精确点讲它是业务对象,是存活在业务层的,是业务逻辑使用的,它存活的目的就是为数据提供一个生存的地方。 VO是独立的Java Object。 3.VO的属性是根据当前业务的不同而不同的,也就是说,它的每一个属性都一一对应当前业务逻辑所需要的数据的名称。 下面我们开始写vo voDAO的写法 entity类的写法(一定是object因为...
hibrenate使用select语句查询多张表的部分字段,并封装到一个实体类(无配置文件)中
hql=“SELECT a.a1, LEFT JOIN biz_service_map ms ON ms.`biz_uuid` = bb.`biz_uuid`”;
使用mybatis example 和 java 8的特性来实现多表关联且带有查询条件的查询
Mybatis Example的好处 使用了面向对象的思想,其关联数据库的单表查询都能自动生成。减少了劳动量,同时将复杂查询拆分成单表查询,加快了查询速度。让其复杂的关联在service层中使用代码进行拼装。这样处理速度会比一个大查询快得多,因为电脑本身就是干这个计算的。 public ServiceResponse doInOperation(ServiceResponse se...
MyBatis(六) resultMap 多表查询 之(一)
resultMap 用于映射 对象关系的 时使用。 对照对象的属性可以很方便的写出 mapper.xml 映射文件。下面用一个例子来再次说明resultMap 的映射过程。 场景如下: 需要查询 多个用户,当点击查看是可以查看他的所有的订单,点击订单时可以查看里面的商品如果要完成这个需求,对应的实体对象如下:对象结构Order//订单类 |--int id |--in
mybatis多表查询返回map类型
mybatis进行多表查询时,返回的结果为map而不是某个实体类的时候,如下: &amp;lt;!-- 查询多表返回类型为map --&amp;gt; &amp;lt;select id=&quot;list&quot; parameterType=&quot;User&quot; resultType=&quot;map&quot;&amp;gt; SELECT u.uid, u.role_id, m.mid, ...
mybatis注解版实现多表联查
参考:https://www.cnblogs.com/it-taosir/p/9992246.html 用户角色关联表: sys_user_role 角色表: sys_role // 根据用户id查询角色信息 @Select({&quot;select * from sys_role where role_id in(select role_id from sys_user_...
学习Mybatis框架(五)—高级映射(多表关联查询)
本节主要对订单商品数据模型进行分析。并分析以下2个点: 高级映射:(了解) 实现一对一查询、一对多、多对多查询。 延迟加载 查询缓存 一级缓存 二级缓存(了解mybatis二级缓存使用场景) 一、高级映射 订单商品数据模型 1.1 数据模型分析思路 1、每张表记录的数据内容 2、每张表重要的字段设置(非空字段、外键字段) 3、数据...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java学习list java list 学习