ssm框架

duhaozhi 2016-09-08 09:07:36
ssm配置中,多表联查怎么配置呀,表与表之间有联系吗?怎么联系的
...全文
205 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
小灯光环 2016-09-08
  • 打赏
  • 举报
回复
同楼上,mybatis不同于hibernate,不需要在对象直接做关联关系映射~ 多表查询写JOIN进行关联就可以了~ 把需要的字段封装在一个DTO对象里~ 这是通常的做法
Darker2016 2016-09-08
  • 打赏
  • 举报
回复
楼上正解啊,大概就是这样子
小白晒太阳 2016-09-08
  • 打赏
  • 举报
回复
多表查询 1、定义一个查询结果的实体类 例如需要A表里 name和age字段 需要B表里class字段 那么定义一个实体包含这3个字段 name, age, class 2、联表查询,sql里面从as字段分别给返回实体里字段赋值,例如:

    <select id="selectPurchaseCountList" parameterType="java.util.HashMap" resultType="com.xx.core.vo.DealCountVo">
        select
            sc.CUSTOMER_ID as customerId,
            count(distinct so.ID) as dealCount
        from sp_customer sc left join sp_order so  on so.RELEASE_ID = sc.CUSTOMER_ID
        left join sp_user su on su.ID = sc.CUSTOMER_ID
        where sc.USER_ID = #{userId} and sc.CUSTOMER_TYPE = #{customerType}
            and so.IS_PURCHASE_ORDER = 1 and so.RECIPIENT_ID = #{userId}
            and su.STATE != 3
            and so.STATE = 8
        group by sc.CUSTOMER_ID
        order by sc.CREATE_TIME desc
        limit #{startIndex},#{pageSize}
    </select>
至于多表怎么关联,就靠关联字段进行关联,比如A表表示学生,里面有个字段CLASS_ID表示所在班级的ID,B表示班级表,主键是班级ID,select * from A, B where A.CLASS_ID = B.ID,这样就可以关联了

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧