系统管理模块_部门管理_实现基本的增删改查功能

系统管理模块_部门管理1_实现基本的增删改查功能

先不考虑上级部门

设计实体、表

1、设计实体

Department.java

 

public class Department {
    private Long id;
    private String name;
    private String description;
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }    
}

 

2、写映射文件

Department.hbm.xml

 

<hibernate-mapping package="cn.itcast.oa.domain">
    <class name="Department" table="itcast_department">
        <id name="id">
            <generator class="native" />
        </id>
        <property name="name"></property>
        <property name="description"></property>
    </class>
</hibernate-mapping>

 

3、把映射文件添加到hibernate.cfg.xml中

<mapping resource="cn/itcast/oa/domain/Department.hbm.xml" />

4、创建表

运行测试类SpringTest.java中的testSessionFactory()方法创建SessionFactory即可

分析功能与请求

增删改查共4个功能,6个请求,需要在Action中有6个对应的处理方法。

作用

方法名

返回值

对应的JSP页面

列表

list()

list

list.jsp

删除

delete()

toList

 

添加页面

addUI()

addUI

addUI.jsp

添加

add()

toList

 

修改页面

editUI()

editUI

editUI.jsp

修改

edit()

toList

 

toList的配置为:type="redirectAction" actionName=“xxAction_list”

<result name="toList" type="redirectAction">role_list</result>

 

实现功能

1,写Action类,写Action中的方法,确定Service中的方法。

DepartmentAction.java

 

@Controller
@Scope("prototype")
public class DepartmentAction extends ActionSupport implements ModelDriven<Department>{//这里也需要转递参数id,名称和说明,实体里都有了。所以要实现ModelDriven,封装表单当中传递过来的参数
    
    //有接口有实现类,想用它就创建,采用@Resource注入
    @Resource
    private DepartmentService departmentService;

    private Department model = new Department();
    
    public Department getModel() {
        return model;
    }
    /**
     * 列表
     */
    public String list() throws Exception {
        List<Department> departmentList = departmentService.findAll();//findAll()在DepartmentService接口中创建
        ActionContext.getContext().put("departmentList", departmentList);//放在map里面方便拿,#号获取
        
        return "list";
    }
    /**
     * 删除
     */
    public String delete() throws Exception {
        departmentService.delete(model.getId());//delete()在DepartmentService接口中创建
        return "toList";
    }
    /**
     * 添加页面
     */
    public String addUI() throws Exception {
        return "saveUI";
    }
    /**
     * 添加
     */
    public String add() throws Exception {
        //封装到对象中
        /*Department department = new Department();
        department.setName(model.getName());
        department.setDescription(model.getDescription());
        //保存到数据库中
        departmentService.save(department);*/
        
        //添加的方法可以简化成一行代码
        departmentService.save(model);
        return "toList";
    }
    /**
     * 修改页面
     */
    public String editUI() throws Exception {
        //准备回显的数据
        Department department =departmentService.getById(model.getId());//把回显的数据的id告诉我
        ActionContext.getContext().getValueStack().push(department);//把它放到栈顶就能回显
        return "saveUI";
    }
    /**
     * 修改
     */
    public String edit() throws Exception {
        //1.从数据库中取出原对象
        Department department = departmentService.getById(model.getId());
        //2.设置要修改的属性
        department.setName(model.getName());
        department.setDescription(model.getDescription());
        //3.更新到数据库中
        departmentService.update(department);
        return "toList";
    }
}

 

struts.xml文件中配置

 

     <!-- 部门管理 -->
        <action name="department_*" class="departmentAction" method="{1}">
            <result name="list">/WEB-INF/jsp/departmentAction/list.jsp</result>
            <result name="saveUI">/WEB-INF/jsp/departmentAction/saveUI.jsp</result>
            <result name="toList" type="redirectAction">department_list</result>
        </action>

 

要想找到这个bean,得在DepartmetAction类上声明:

@Controller

@Scope("prototype")

 2,写Service方法,确定Dao中的方法。

DepartmentService.java

 

//接口中只有方法的声明,没有方法的实现
public interface DepartmentService {

    List<Department> findAll();

    void delete(Long id);

    void save(Department model);

    Department getById(Long id);

    void update(Department department);
}

 

DepartmnetServiceImpl.java

//在Action中要调用Service,要写下面两个注解
@Service
@Transactional    //业务层要管理实务,控制开关事务
public class DepartmentServiceImpl implements DepartmentService{
    
    //Service里要调用Dao,得到它通过注入
    @Resource
    private DepartmentDao departmentDao;

    public List<Department> findAll() {
        return departmentDao.findAll();
    }

    public void delete(Long id) {
        departmentDao.delete(id);
    }

    public void save(Department model) {
        departmentDao.save(model);
    }

    public Department getById(Long id) {
        return departmentDao.getById(id);
    }

    public void update(Department department) {
        departmentDao.update(department);
    }
}

3,写Dao方法。

DepartmentDao.java

 

public interface DepartmentDao extends BaseDao<Department>{
}

 

DepartmentDaoImpl.java

//加上这个注解交给容器管理,Service就能
@Repository
public class DepartmentDaoImpl extends BaseDaoImpl<Department> implements DepartmentDao {
}

4,写JSP

把美工做好的页面代码拷过来

修改为正确的路径

list.jsp

 

 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
 2 <%@ taglib prefix="s" uri="/struts-tags" %>
 3 <html>
 4 <head>
 5     <title>部门列表</title>
 6     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 7     <script language="javascript" src="${pageContext.request.contextPath}/script/jquery.js"></script>
 8     <script language="javascript" src="${pageContext.request.contextPath}/script/pageCommon.js" charset="utf-8"></script>
 9     <script language="javascript" src="${pageContext.request.contextPath}/script/PageUtils.js" charset="utf-8"></script>
10     <link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath}/style/blue/pageCommon.css" />
11     <script type="text/javascript">
12     </script>
13 </head>
14 <body>
15  
16 <div id="Title_bar">
17     <div id="Title_bar_Head">
18         <div id="Title_Head"></div>
19         <div id="Title"><!--页面标题-->
20             <img border="0" width="13" height="13" src="${pageContext.request.contextPath}/style/images/title_arrow.gif"/> 部门管理
21         </div>
22         <div id="Title_End"></div>
23     </div>
24 </div>
25 
26 <div id="MainArea">
27     <table cellspacing="0" cellpadding="0" class="TableStyle">
28        
29         <!-- 表头-->
30         <thead>
31             <tr align=center valign=middle id=TableTitle>
32                 <td width="150px">部门名称</td>
33                 <td width="150px">上级部门名称</td>
34                 <td width="200px">职能说明</td>
35                 <td>相关操作</td>
36             </tr>
37         </thead>
38 
39         <!--显示数据列表-->
40         <tbody id="TableData" class="dataContainer" datakey="departmentList">
41         
42         <s:iterator value="#departmentList">
43             <tr class="TableDetail1 template">
44                 <td>${name}&nbsp;</td>
45                 <td>${parent.name}&nbsp;</td>
46                 <td>${description}&nbsp;</td>
47                 <td><s:a action="department_delete?id=%{id}" onClick="return window.confirm('这将删除所有的下级部门,您确定要删除吗?')" >删除</s:a>
48                     <s:a action="department_editUI?id=%{id}">修改</s:a>
49                 </td>
50             </tr>
51         </s:iterator>
52         </tbody>
53     </table>
54     
55     <!-- 其他功能超链接 -->
56     <div id="TableTail">
57         <div id="TableTail_inside">
58             <s:a action="department_addUI"><img src="${pageContext.request.contextPath}/style/images/createNew.png" /></s:a>
59         </div>
60     </div>
61 </div>
62 
63 <!--说明-->    
64 <div id="Description"> 
65     说明:<br />
66     1,列表页面只显示一层的(同级的)部门数据,默认显示最顶级的部门列表。<br />
67     2,点击部门名称,可以查看此部门相应的下级部门列表。<br />
68     3,删除部门时,同时删除此部门的所有下级部门。
69 </div>
70 </body>
71 </html>

 

saveUI.jsp

 1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
 2 <%@ taglib prefix="s" uri="/struts-tags" %>
 3 <html>
 4 <head>
 5     <title>部门设置</title>
 6     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 7     <script language="javascript" src="${pageContext.request.contextPath}/script/jquery.js"></script>
 8     <script language="javascript" src="${pageContext.request.contextPath}/script/pageCommon.js" charset="utf-8"></script>
 9     <script language="javascript" src="${pageContext.request.contextPath}/script/PageUtils.js" charset="utf-8"></script>
10     <link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath}/style/blue/pageCommon.css" />
11 </head>
12 <body>
13 
14 <!-- 标题显示 --> 
15 <div id="Title_bar">
16     <div id="Title_bar_Head">
17         <div id="Title_Head"></div>
18         <div id="Title"><!--页面标题-->
19             <img border="0" width="13" height="13" src="${pageContext.request.contextPath}/style/images/title_arrow.gif"/> 部门信息
20         </div>
21         <div id="Title_End"></div>
22     </div>
23 </div>
24 
25 <!--显示表单内容-->
26 <div id=MainArea>
27     <s:form action="department_%{id == null ? 'add' : 'edit'}"><!-- 提交到 -->
28     <s:hidden name="id"></s:hidden>
29     
30         <div class="ItemBlock_Title1"><!-- 信息说明<DIV CLASS="ItemBlock_Title1">
31             <IMG BORDER="0" WIDTH="4" HEIGHT="7" SRC="${pageContext.request.contextPath}/style/blue/images/item_point.gif" /> 部门信息 </DIV>  -->
32         </div>
33         
34         <!-- 表单内容显示 -->
35         <div class="ItemBlockBorder">
36             <div class="ItemBlock">
37                 <table cellpadding="0" cellspacing="0" class="mainForm">
38                     <tr><td width="100">上级部门</td>
39                         <td><select name="parentId" class="SelectStyle">
40                                 <option value="0" selected="selected">请选择部门</option>
41                                 <option value="7">┠总经理室</option>
42                                 <option value="1">┠市场部</option>
43                                 <option value="2"> ┠咨询部</option>
44                                 <option value="3"> ┠招生部</option>
45                                 <option value="4">┠教学部</option>
46                                 <option value="5">┠后勤部</option>
47                             </select>
48                         </td>
49                     </tr>
50                     <tr><td>部门名称</td>
51                         <td><s:textfield name="name" cssClass="InputStyle"/> *</td>
52                     </tr>
53                     <tr><td>职能说明</td>
54                         <td><s:textarea name="description" cssClass="TextareaStyle"></s:textarea></td>
55                     </tr>
56                 </table>
57             </div>
58         </div>
59         
60         <!-- 表单操作 -->
61         <div id="InputDetailBar">
62             <input type="image" src="${pageContext.request.contextPath}/style/images/save.png"/>
63             <a href="javascript:history.go(-1);"><img src="${pageContext.request.contextPath}/style/images/goBack.png"/></a>
64         </div>
65     </s:form>
66 </div>
67 
68 <div class="Description">
69     说明:<br />
70     1,上级部门的列表是有层次结构的(树形)。<br/>
71     2,如果是修改:上级部门列表中不能显示当前修改的部门及其子孙部门。因为不能选择自已或自已的子部门作为上级部门。<br />
72 </div>
73 </body>
74 </html>

 

转载于:https://www.cnblogs.com/justdoitba/p/7772249.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
部门管理系统是一个企业级应用系统,用于管理企业内部的部门信息。基于Java语言的部门管理系统,可以使用Java Web技术进行开发,如Spring、SpringMVC、MyBatis等框架,使用MySQL等数据库进行数据存储。 系统主要功能包括: 1. 部门管理实现部门信息的增删改查操作,包括部门名称、部门编号、部门负责人等信息。 2. 员工管理实现对员工信息的增删改查操作,包括员工姓名、员工编号、所属部门、职位等信息。 3. 权限管理实现对系统用户的权限控制,包括用户登录、修改密码、添加、删除、修改用户等操作。 4. 报表统计:实现部门及员工信息的统计分析,包括员工人数、部门人数、部门职位分布等。 5. 系统设置:实现对系统参数的配置,包括数据库连接、日志记录、邮件发送等。 系统开发流程: 1. 需求分析:明确系统需求,包括用户需求、功能需求、性能需求、系统可靠性需求等。 2. 设计阶段:根据需求分析结果,进行系统设计,包括系统架构设计、数据库设计、界面设计等。 3. 编码阶段:根据设计文档,使用Java技术进行系统编码,包括业务逻辑、数据访问、界面设计等。 4. 测试阶段:对系统进行测试,包括单元测试、集成测试、系统测试等,确保系统质量。 5. 部署阶段:将系统部署到服务器上,进行系统配置、安装等工作。 6. 维护阶段:对系统进行日常维护,包括系统升级、数据备份、故障排除等。 基于Java部门管理系统可以提高企业的管理效率和工作效率,实现企业信息化管理,同时也可以为企业提供更加高效的决策支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值