关于员工管理和部门管理

关于员工管理和部门管理

这个页面好像没权限控制,普通员工也能添加员工,也能添加部门

正在回答

登陆购买课程后可参与讨论,去登陆

4回答

抱歉同学,resultMap是employee的话,只是通过部门编号查询员工信息,没有查询部门。如果同学在部门类中增加List<Employee>,这里resultMap应该是department,查询部门信息,包括部门下的员工信息。

测试同学的代码,同学的sql语句有点问题,

http://img1.sycdn.imooc.com//climg/5ef1ccb0094e0cc607990176.jpg

同学使用左连接查询,如果有多个员工,将会出现多次部门信息,如:

http://img1.sycdn.imooc.com//climg/5ef1ccf0094593dc07090332.jpg

这里建议同学使用如下sql语句:

select * from department where sn=#{sn}

通过部门编号查询部门信息,所有的部门信息都可以查询出来,包括部门下的员工信息。

祝:学习愉快~

好帮手慕阿满 2020-06-23 14:21:42

同学你好,如下报错是指: 语句返回了多个,其中预期不超过一个。

http://img1.sycdn.imooc.com//climg/5ef196e3095fba8115500102.jpg

查询一个部门下所有员工,应该返回的是员工信息,但是同学resultMap返回department。

这里的sql语句应该是:select 查询的字段 from employee where  department_sn = #{sn},resultMap应该是employee。

祝:学习愉快~

  • 提问者 cccca #1
    我查询一个部门下的员工,不是应该写查询部门所有映射字段吗?然后部门的resultMap增加一个一对多的集合吗?怎么会用到employ的resultMap呢?
    2020-06-23 14:40:28
提问者 cccca 2020-06-23 10:53:32

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.4//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.san.dao.DepartmentDao">
   
   <resultMap id="department" type="Department">
       <id property="sn" column="sn" javaType="String"/>
       <result property="name" column="name" javaType="String"/>
       <result property="address" column="address" javaType="String"/>
       <collection property="employees" column="sn"
                   select="com.san.dao.EmployeeDao.select"/>//一对多
   </resultMap>
   
   
   
   <insert id="insert" parameterType="Department">
       insert into department (sn, name, address) values (#{sn},#{name},#{address});
   </insert>

   <update id="update" parameterType="Department">
       update department set name =#{name},address=#{address}  where sn=#{sn} ;
   </update>

   <delete id="delete" parameterType="String">
       delete from department where sn=#{sn}
   </delete>

    <select id="select" parameterType="String" resultMap="department">
       select d.*,e.sn,e.name,e.post from department d left join employee e  on e.department_sn=d.sn
       where d.sn=#{sn};
   </select>

   <select id="selectAll" resultMap="department">
       select * from department;
   </select>
</mapper>


部门实体类增加了:List<Employee> employees;


http://img1.sycdn.imooc.com//climg/5ef16e7009f66da817990554.jpg

好帮手慕阿满 2020-06-22 11:07:09

抱歉同学,此次项目重点是报销单的流程,并这没有涉及到权限控制。

祝:学习愉快~

  • 提问者 cccca #1
    我想增加一个查询,查询一个部门下所有员工,你看看我的xml有问题吗?我增加后报错了
    2020-06-23 10:51:26
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师