searchaction.java

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

JAVA
87
字号
package hospital.Controller.Actions.GeneralFunction;

import org.apache.struts.action.*;

import hospital.Foundation.DataFixing;

import javax.servlet.http.*;
import java.net.*;
import java.sql.*;
import java.util.*;

public class SearchAction extends Action {
    private String baseTableName = "";
    private String superTableName = "";
    private String modified = "";

    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 listColumnName = new ArrayList(30);

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

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

            //得出要查询的数据表的所有列的列名
            createColumnName(stmt, listColumnName);

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

        //将参数和查询结果发往结果页面
        returnPageParameters(request, listColumnName);

        return mapping.findForward("search");
    }

    //将所有成员变量归为初始值
    private void setPropertyToOrginate(){
        baseTableName = "";
        superTableName = "";
        modified = "";
    }

    //初始化页面的所有参数
    private void initPageParameters(HttpServletRequest request) throws Exception{
        //将所有成员变量归为初始值
        setPropertyToOrginate();

        baseTableName = DataFixing.trimNULL(request.getParameter("base_tablename"));
        superTableName = DataFixing.trimNULL(request.getParameter("super_tablename"));
        modified = DataFixing.trimNULL(request.getParameter("modified"));

        baseTableName = URLDecoder.decode(baseTableName.replace('!', '%'), "UTF-8");
        superTableName = URLDecoder.decode(superTableName.replace('!', '%'), "UTF-8");
    }

    //得出要查询的数据表的所有列的列名
    private void createColumnName(Statement stmt,ArrayList listColumnName) throws SQLException{
        String sql = "select * from " + superTableName;
        ResultSet rs = stmt.executeQuery(sql);
        ResultSetMetaData rsmd = rs.getMetaData();
        for (int i = 1; i <= rsmd.getColumnCount(); i++) {
            listColumnName.add(rsmd.getColumnName(i));
        }
    }

    //将参数和查询结果发往结果页面
    private void returnPageParameters(HttpServletRequest request, ArrayList listColumnName) {
        request.setAttribute("listColumnName", listColumnName);
        request.setAttribute("baseTableName", baseTableName);
        request.setAttribute("superTableName", superTableName);
        request.setAttribute("modified", modified);
    }
}

⌨️ 快捷键说明

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