• 结对开发石家庄地铁系统


    我和袁鹏一组,代码如下

    util层的代码是:

    package util;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    /**
     * 数据库连接工具
     * @author YP
     */
    public class Util {
        public static String db_url = "jdbc:mysql://localhost:3306/test";
        public static String db_user = "root";
        public static String db_pass = "zxh521+.";
        public static Connection getConnection () {
            Connection connection = null;    
            try {
                Class.forName("com.mysql.jdbc.Driver");
                connection = DriverManager.getConnection(db_url, db_user, db_pass);
            } catch (Exception e) {
                e.printStackTrace();
            }
            return connection;
        }
        /**
         * 关闭连接
         * @param state
         * @param conn
         */
        public static void close (Statement state, Connection conn) {
            if (state != null) {
                try {
                    state.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }    
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
        public static void close (ResultSet rs, Statement state, Connection conn) {
            if (rs != null) {
                try {
                    rs.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (state != null) {
                try {
                    state.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    bean层代码为:

    package bean;
    
    public class Subway {
        private int id;
        private int number;
        private String name;
        private String message;
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public int getNumber() {
            return number;
        }
        public void setNumber(int number) {
            this.number = number;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getMessage() {
            return message;
        }
        public void setMessage(String message) {
            this.message = message;
        }
        public Subway(int id,int number,String name,String message){
            this.id=id;
            this.name=name;
            this.number=number;
            this.message=message;
        }
        public Subway(int number,String name,String message){
            this.name=name;
            this.number=number;
            this.message=message;
        }
    }

    Dao层代码为:

    package dao;
    
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.List;
    
    import bean.Subway;
    import util.Util;
    
    public class SDao {
        /**
         * 查询线路信息
         */
        public List<Subway> getSubwayByNumber(int number) {
            String sql = "select * from subway where number = '" + number + "'";
            List<Subway> list = new ArrayList<>();
            Connection conn = Util.getConnection();
            Statement state = null;
            ResultSet rs = null;
            try {
                state = conn.createStatement();
                rs = state.executeQuery(sql);
                Subway subway = null;
                while (rs.next()) {
                    int id = rs.getInt("id");
                    String name = rs.getString("name");
                    String message = rs.getString("message");
                    subway = new Subway(id, number, name, message);
                    list.add(subway);
                }
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                Util.close(rs, state, conn);
            }    
            return list;
        }
        /**
         * 通过name得到地铁信息
         */
        public Subway getSubwayByName(String name) {
            String sql = "select * from subway where name ='" + name + "'";
            Connection conn = Util.getConnection();
            Statement state = null;
            ResultSet rs = null;
            Subway subway = null;
            try {
                state = conn.createStatement();
                rs = state.executeQuery(sql);
                while (rs.next()) {
                    int id = Integer.parseInt(rs.getString("id"));
                    int number = Integer.parseInt(rs.getString("number"));
                    String message = rs.getString("message");
                    subway = new Subway(id, number, name, message);
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                Util.close(rs, state, conn);
            }
            return subway;
        }
        /**
         * 查询路线
         */
        @SuppressWarnings("null")
        public List<Subway> search(String name1,String name2) {
            List<Subway> list = new ArrayList<Subway>();
            Connection conn = Util.getConnection();
            Statement state1 = null;
            Statement state2 = null;
            Statement state3 = null;
            Statement state4 = null;
            Statement state5 = null;
            ResultSet rs1 = null;
            ResultSet rs2 = null;
            ResultSet rs3 = null;
            ResultSet rs4 = null;
            ResultSet rs5 = null;
            try {
                Subway subway1 = null;
                Subway subway2 = null;
                String sql1 = "select * from subway where name ='" + name1 + "'";
                String sql2 = "select * from subway where name ='" + name2 + "'";
                state1 = conn.createStatement();
                rs1 = state1.executeQuery(sql1);
                while (rs1.next()) {
                    int id1 = rs1.getInt("id");
                    int number1 = rs1.getInt("number");
                    String message1 = rs1.getString("message");
                    subway1 = new Subway(id1, number1, name1, message1);
                }
                state2 = conn.createStatement();
                rs2 = state2.executeQuery(sql2);
                while (rs2.next()) {
                    int id2 = rs2.getInt("id");
                    int number2 = rs2.getInt("number");
                    String message2 = rs2.getString("message");
                    subway2 = new Subway(id2, number2, name2, message2);
                }
                if(subway1.getNumber()==subway2.getNumber()){
                    Subway subway3 = null;
                    if(subway1.getId()<subway2.getId()){
                        String sql3 = "select * from subway where id between '" + subway1.getId() + "' and '" + subway2.getId() + "'";
                        state3 = conn.createStatement();
                        rs3 = state3.executeQuery(sql3);
                        while (rs3.next()) {
                            int id3 = rs3.getInt("id");
                            int number3 = rs3.getInt("number");
                            String name3 = rs3.getString("name");
                            String message3 = rs3.getString("message");
                            subway3 = new Subway(id3, number3, name3, message3);
                            list.add(subway3);
                        }
                    } else if(subway1.getId()>subway2.getId()){
                        String sql3 = "select * from subway where id between '" + subway2.getId() + "' and '" + subway1.getId() + "'";
                        rs3 = state3.executeQuery(sql3);
                        while (rs3.next()) {
                            int id3 = Integer.parseInt(rs3.getString("id"));
                            int number3 = Integer.parseInt(rs3.getString("number"));
                            String name3 = rs3.getString("name");
                            String message3 = rs3.getString("message");
                            subway3 = new Subway(id3, number3, name3, message3);
                            list.add(subway3);
                        }
                    } 
                }
                else {
                    String sql4 = "select * from subway where number = '" + subway1.getNumber() + "'";
                    String sql5 = "select * from subway where number = '" + subway2.getNumber() + "'";
                    state4 = conn.createStatement();
                    rs4 = state3.executeQuery(sql4);
                    
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                Util.close(rs1, state1, conn);
                Util.close(rs2, state2, conn);
                Util.close(rs3, state3, conn);
            }
            return list;
        }
    }

    servlet层的代码为:

    package servlet;
    
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import bean.Subway;
    import dao.SDao;
    
    @WebServlet("/Sservlet")
    public class Sservlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
        SDao dao = new SDao();
        /**
         * 方法选择
         */
        protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            req.setCharacterEncoding("utf-8");
            String method = req.getParameter("method");
            if ("getsubwaybynumber".equals(method)) {
                getSubwayByNumber(req, resp);
            } else if ("getsubwaybyname".equals(method)) {
                getSubwayByName(req, resp);
            }
        }
        /**
         * 查询线路信息
         */
        private void getSubwayByNumber(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
            req.setCharacterEncoding("utf-8");
            int number = Integer.parseInt(req.getParameter("number"));
            List<Subway> subway = dao.getSubwayByNumber(number);
            if(subway == null) {
                req.setAttribute("message", "无此路线!");
                req.getRequestDispatcher("road.jsp").forward(req,resp);
            } else {
                req.setAttribute("subway", subway);
                req.getRequestDispatcher("roadlist.jsp").forward(req,resp);
            }
        }
        /**
         * 通过name得到Subway
         */
        private void getSubwayByName(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
            req.setCharacterEncoding("utf-8");
            String name1 = req.getParameter("name1");
            String name2 = req.getParameter("name2");
            Subway subway1 = dao.getSubwayByName(name1);
            Subway subway2 = dao.getSubwayByName(name2);
            List<Subway> subway3=new ArrayList<>();
            subway3 = dao.search(name1,name2);
            int m = 0;
            if(subway1.getNumber()==subway2.getNumber()){
                m = Math.abs(subway1.getId()-subway2.getId());
            }
            if(subway1.getNumber()!=subway2.getNumber()){
                
            }
            req.setAttribute("subway1", subway1);
            req.setAttribute("subway2", subway2);
            req.setAttribute("m", m);
            req.setAttribute("subway3", subway3);
            req.getRequestDispatcher("searchlist.jsp").forward(req,resp);
        }
    }

    现在的代码只能完成单条线路和一次换车,无法完成多次换车。

  • 相关阅读:
    Hadoop OutputFormat浅析
    硬盘性能
    HDFS读文件过程分析:读取文件的Block数据
    HDFS写文件过程分析
    JAVA中的编码分析
    HBase 写入优化
    HBase ttl 验证
    大数据多维分析平台的实践
    TiDB在特来电的探索
    Druid 基础使用-操作篇(Pivot、plyql)
  • 原文地址:https://www.cnblogs.com/zhaoxinhui/p/10649656.html
Copyright © 2020-2023  润新知