zoukankan      html  css  js  c++  java
  • mybatis三(关联查询)

    一、类属性

    @Alias("depart")
    public class Department {

    private Integer id;
    private String departName;
    private List<User> users;

    @Alias("user")
    public class User {

    private int id;
    private String lastName;
    private String email;
    private String gender;
    private Department dept;

    二、定义方法

    public User selectUserByIdStep(Integer id);

    三、mapper配置

    <resultMap type="depart" id="dMap">
            <id column="depart_id" property="id" />
            <result column="depart_name" property="departName"/>
            <!-- collection的属性封装 -->
            <collection property="users" ofType="user">
                <id column="id" property="id" />
                <result column="last_name" property="lastName"/>
                <result column="email" property="email"/>
                <result column="gender" property="gender"/>
            </collection>
        </resultMap>
        <select id="selectDepartAndUser" resultMap="dMap">
            SELECT
            u.id,u.depart_id,u.email,u.gender,u.last_name,d.depart_name FROM USER
            u LEFT JOIN department d ON u.depart_id=d.id WHERE d.id=#{id}
        </select>

    2. <!-- 鉴别器 

    <discriminator javaType="">
    可以根据某列的值改变封装行为
    如果查询出是女生,则把部门查询出来
    如果是男生,把list_name这列赋值给email
    -->

    <select id="selectUserDis" resultMap="disMap">
            SELECT * FROM USER WHERE id =#{id}
        </select>
        <!-- 鉴别器 
            <discriminator javaType="">
             可以根据某列的值改变封装行为
             如果查询出是女生,则把部门查询出来
             如果是男生,把list_name这列赋值给email
        -->
        <resultMap type="user" id="disMap">
            <id column="id" property="id"/>
            <result column="email" property="email"/>
            <result column="last_name" property="lastName"/>
            <result column="gender" property="gender"/>
            <discriminator javaType="string" column="gender">
                <!-- 女生 -->
                <case value="0" resultType="user">
                    <association property="dept" select="mapper.DepartMapper.selectDepartById" column="{id=depart_id}" fetchType="eager">
                    </association>
                </case>
                <!-- 男生 -->
                <case value="1" resultType="user">
                    <id column="id" property="id"/>
                    <result column="last_name" property="email"/>
                    <result column="last_name" property="lastName"/>
                    <result column="gender" property="gender"/> 
                </case>
            </discriminator>
        </resultMap>
  • 相关阅读:
    Xcode 4.1~4.6 + iOS 5、iOS 6免证书(iDP)开发+真机调试+生成IPA全攻略
    Java程序员快速入门Go语言
    企业站常用的点击后弹出下拉菜单导航
    企业站常用漂亮横向导航菜单
    点击弹出弹性下拉菜单效果
    很酷的伸缩导航菜单效果,可自定义样式和菜单项。
    导航条点击按钮切换效果
    不错的二级导航菜单特效
    商城常用产品分类导航条
    css实现鼠标经过导航文字偏位效果
  • 原文地址:https://www.cnblogs.com/flgb/p/10280105.html
Copyright © 2011-2022 走看看