ssm 开发经验 2019/5/12 mybatis 增加select 语句

本文详细介绍了如何使用MyBatis的resultMap和association标签实现员工与部门信息的联合查询,通过具体XML配置示例,展示了如何在查询员工信息时一并获取其所属部门的详细信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 使用mybatis逆向生成了一些查询sql的xml文件和java 文件后,对其进行修改,也就是加上一些功能
  2. 加入的功能是在查询员工的时候顺便把部门信息也查出来,共需要以下的步骤
    1. 新建resultmap ===============>这里需要注意的是assocication的使用,它是将一个java类当作另外一个类的成员属性的时候使用的。具体的用法是 javaType指定这个成员属性是哪个java类, property是成员属性的名字
        <resultMap id="BaseResultMapWithDept" type="ssm.bean.TblEmp">
          <id column="emp_id" jdbcType="INTEGER" property="empId" />
          <result column="emp_name" jdbcType="VARCHAR" property="empName" />
          <result column="gender" jdbcType="VARCHAR" property="gender" />
          <result column="email" jdbcType="VARCHAR" property="email" />
          <result column="d_id" jdbcType="INTEGER" property="dId" />
          <!--使用assocication来定义, 当类作为成员属性-->
          <association   javaType="ssm.bean.TblDept" property="tblDept">
            <id column="dept_id" javaType="INTEGER" property="deptId"/>
            <result column="dept_name" jdbcType="VARCHAR" property="deptName"/>
          </association>
        </resultMap>

       

    2. 使用sql标签来指定查询结果每一列的名字

      <sql id="Base_Column_List_WIth_dept">
         emp_id, emp_name, gender, email, d_id, dept_id, dept_name
        </sql>

       

    3. 编写sql 语句,由于是在查询员工的时候把部门信息也查出来,所以要用到联合查询(左连接)

        <!--这是自己添加的,查询的时候连个部门表一起查-->
        <select id="selectByExampleWithDept" parameterType="ssm.bean.TblEmpExample" resultMap="BaseResultMapWithDept">
          select
          <if test="distinct">
            distinct
          </if>
          <include refid="Base_Column_List_WIth_dept" />
          FROM tbl_emp  e LEFT JOIN tbl_dept d
          ON e.d_id = d.dept_id
          <if test="_parameter != null">
            <include refid="Example_Where_Clause" />
          </if>
          <if test="orderByClause != null">
            order by ${orderByClause}
          </if>
        </select>

       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值