dispatchroleaction.java

来自「医院信息系统(Hospital Information System」· Java 代码 · 共 108 行

JAVA
108
字号
package hospital.Controller.Actions.UserRole;

import org.apache.struts.action.*;
import javax.servlet.http.*;
import java.sql.*;
import java.util.*;

public class DispatchRoleAction extends Action {
    String userNo = "";
    String[] checkedRoleItems = null;
    String successFlag = "0";

    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {

        String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
        String dbURL = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=hospital";
        String userName = "sa";
        String userPwd = "";
        Connection dbConn;

        ArrayList listRole1 = new ArrayList(20);
        ArrayList listRole2 = new ArrayList(20);

        try {
            Class.forName(driverName);
            dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
            Statement stmt = dbConn.createStatement();

            //初始化页面的所有参数
            initPageParameters(form, request);

            if (checkedRoleItems != null) {
                saveRoleItems(stmt);
            }

            createRoleItems(stmt, listRole1, listRole2);

            stmt.close();
            dbConn.close();

        } catch (Exception ex) {
            ex.printStackTrace();
        }

        returnPageParameters(request, listRole1, listRole2);
        return mapping.findForward("dispatchrole");
    }

    private void setPropertyToOrginate() {
        userNo = "";
        checkedRoleItems = null;
        successFlag = "0";
    }

    private void initPageParameters(ActionForm form, HttpServletRequest request) {
        setPropertyToOrginate();
        userNo = request.getParameter("userNo");
        checkedRoleItems = request.getParameterValues("list2");
    }

    private void createRoleItems(Statement stmt, ArrayList listRole1, ArrayList listRole2) throws SQLException {
        String sql = "";
        ResultSet rs = null;

        sql = "select * from sys角色表 where 角色编号 not in (select 角色编号 from sys用户角色表 where 用户编号='" + userNo + "')";
        rs = stmt.executeQuery(sql);
        while (rs.next()) {
            String[] contentRow = new String[2];
            contentRow[0] = rs.getString("角色编号");
            contentRow[1] = rs.getString("角色名称");
            listRole1.add(contentRow);
        }

        sql = "select sys角色表.角色编号,sys角色表.角色名称 from sys用户角色表,sys角色表 where sys用户角色表.角色编号=sys角色表.角色编号 and sys用户角色表.用户编号='" + userNo + "'";
        rs = stmt.executeQuery(sql);
        while (rs.next()) {
            String[] contentRow = new String[2];
            contentRow[0] = rs.getString("角色编号");
            contentRow[1] = rs.getString("角色名称");
            listRole2.add(contentRow);
        }
        rs.close();
    }

    private void saveRoleItems(Statement stmt) {
        try {
            System.out.println(checkedRoleItems.length);
            String sql = "delete from sys用户角色表 where 用户编号='" + userNo + "'";
            stmt.executeUpdate(sql);
            for (int i = 0; i < checkedRoleItems.length; i++) {
                sql = "insert into sys用户角色表(角色编号,用户编号) values('" + checkedRoleItems[i] + "','" + userNo + "')";
                stmt.executeUpdate(sql);
            }
            successFlag = "1";
        } catch (SQLException ex) {
            ex.printStackTrace();
            successFlag = "-1";
        }
    }

    private void returnPageParameters(HttpServletRequest request, ArrayList listRole1, ArrayList listRole2) {
        request.setAttribute("userNo", userNo);
        request.setAttribute("listRole1", listRole1);
        request.setAttribute("listRole2", listRole2);
        request.setAttribute("successFlag", successFlag);
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?