学习进度第4周

时间 30小时
代码量 2000行左右
博客园 2
知识点

知识点:从最基本的jsp连接数据库学习。         

List<类名> list=new ArrayList<>():这就像是一个容器。能把数据储存在 list里。

ResultSet rs:创建rs结果集可以用来接受储存数据。

rs = state.executeQuery(sql):就上面的代码而言,excuteQuery就是对数据库进行操作,然后再把值传给rs结果集中。

rs.getString(“id”):单独提取id这个值。

基本熟悉select语句。select site from all_line where id between 1 and 6;  搜索出id为1-6的站台。

req.getParameter("line"):getParameter就是从网页中获取输入的数据。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------

String line=dao.line(site);
req.setAttribute("lines", line);     将字符串line的数据导入到网页lines中,设置lines提供为网页的接收

<td><%=request.getAttribute("lines") %></td>   网页接受lines的数据。

 

package com.sub.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 com.sub.been.SubwayBeen;
import com.sub.util.DBUtil;
public class SubwayDao {

/*
 * 搜索一号线的所有路线
 */
    public List<SubwayBeen> one_line(String line, String intro, String route,String site) {
        String sql = "select * from one_line order by id ASC";
        List<SubwayBeen> list = new ArrayList<>();
        Connection conn = DBUtil.getConn();
        Statement state = null;
        ResultSet rs = null;

        try {
            state = conn.createStatement();
            rs = state.executeQuery(sql);
            SubwayBeen bean = null;
            while (rs.next()) {
                String id = rs.getString("id");
                String line2 = rs.getString("line");
                String intro2 = rs.getString("intro");
                String route2 = rs.getString("route");
                String site2 = rs.getString("site");
                bean = new SubwayBeen(id, line2, intro2, route2,site2);
                list.add(bean);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBUtil.close(rs, state, conn);
        }
        
        return list;
    }
    
    /*
     * 搜索二号线的所有路线
     */
    public List<SubwayBeen> two_line(String line, String intro, String route,String site) {
        String sql = "select * from two_line order by id ASC";
        List<SubwayBeen> list = new ArrayList<>();
        Connection conn = DBUtil.getConn();
        Statement state = null;
        ResultSet rs = null;

        try {
            state = conn.createStatement();
            rs = state.executeQuery(sql);
            SubwayBeen bean = null;
            while (rs.next()) {
                String id = rs.getString("id");
                String line2 = rs.getString("line");
                String intro2 = rs.getString("intro");
                String route2 = rs.getString("route");
                String site2 = rs.getString("site");
                bean = new SubwayBeen(id, line2, intro2, route2,site2);
                list.add(bean);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBUtil.close(rs, state, conn);
        }
        
        return list;
    }
    
    
    /*
     * 搜索四号线的所有路线
     */
    public List<SubwayBeen> four_line(String line, String intro, String route,String site) {
        String sql = "select * from four_line order by id ASC";
        List<SubwayBeen> list = new ArrayList<>();
        Connection conn = DBUtil.getConn();
        Statement state = null;
        ResultSet rs = null;

        try {
            state = conn.createStatement();
            rs = state.executeQuery(sql);
            SubwayBeen bean = null;
            while (rs.next()) {
                String id = rs.getString("id");
                String line2 = rs.getString("line");
                String intro2 = rs.getString("intro");
                String route2 = rs.getString("route");
                String site2 = rs.getString("site");
                bean = new SubwayBeen(id, line2, intro2, route2,site2);
                list.add(bean);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBUtil.close(rs, state, conn);
        }
        
        return list;
    }
    
    /*
     * 搜索四号线支线的所有路线
     */
    public List<SubwayBeen> four_feederline(String line, String intro, String route,String site) {
        String sql = "select * from four_feederline order by id ASC";
        List<SubwayBeen> list = new ArrayList<>();
        Connection conn = DBUtil.getConn();
        Statement state = null;
        ResultSet rs = null;

        try {
            state = conn.createStatement();
            rs = state.executeQuery(sql);
            SubwayBeen bean = null;
            while (rs.next()) {
                String id = rs.getString("id");
                String line2 = rs.getString("line");
                String intro2 = rs.getString("intro");
                String route2 = rs.getString("route");
                String site2 = rs.getString("site");
                bean = new SubwayBeen(id, line2, intro2, route2,site2);
                list.add(bean);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBUtil.close(rs, state, conn);
        }
        
        return list;
    }
    
    
    /*
     * 根据站台名获取该站台的id
     */
    public String id(String site)
    {
        String sql="select id from all_line where site = '"+site+"'";
        Connection conn = DBUtil.getConn();
        Statement state = null;
        String id=null;
        ResultSet rs = null;
        try
        {
            state=conn.createStatement();
            rs = state.executeQuery(sql);
            while(rs.next())
            {
                 id=rs.getString("id");
            }
        }catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBUtil.close(rs, state, conn);
        }
        return id;
        
    }
    /*
     * 根据站台名获取该站台属于几号线路
     */
    public String line(String site)
    {
        String sql="select line from all_line where site = '"+site+"'";
        Connection conn = DBUtil.getConn();
        Statement state = null;
        String line=null;

        ResultSet rs = null;
        try
        {
            state=conn.createStatement();
            rs = state.executeQuery(sql);
            while(rs.next())
            {
                 line=rs.getString("line");
            }
        }catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBUtil.close(rs, state, conn);
        }
        return line;
        
    }
    /*
     * 根据获取的id值搜索出其中间的站台升序
     */
    public String station1(int id1,int id2)
    {
        String sql="select site from all_line where id between '"+id1+"' and '"+id2+"' order by id ASC" ;
        Connection conn = DBUtil.getConn();
        Statement state = null;
        ResultSet rs = null;
        String route = "";
        try
        {
            state=conn.createStatement();
            rs = state.executeQuery(sql);
            if(rs.next())
                route=rs.getString("site");
            while(rs.next())
            {
                String site=rs.getString("site");
                route+="->"+site;
            }
        }catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBUtil.close(rs, state, conn);
        }
        return route;
    }
    /*
     * 根据获取的id值搜索出其中间的站台降序
     */
    public String station2(int id1,int id2)
    {
        String sql="select site from all_line where id between '"+id1+"' and '"+id2+"' order by id DESC" ;
        Connection conn = DBUtil.getConn();
        Statement state = null;
        ResultSet rs = null;
        String route = "";
        try
        {
            state=conn.createStatement();
            rs = state.executeQuery(sql);
            if(rs.next())
                route=rs.getString("site");
            while(rs.next())
            {
                String site=rs.getString("site");
                route+="->"+site;
            }
        }catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBUtil.close(rs, state, conn);
        }
        return route;
    }
    
    
    
    
}
package com.sub.servlet;

import java.io.IOException;
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 com.sub.been.SubwayBeen;
import com.sub.dao.SubwayDao;


@WebServlet("/SubwayServlet")
public class SubwayServlet  extends HttpServlet
{
    private static final long serialVersionUID = 1L;
    
    SubwayDao dao=new SubwayDao();
    
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
    {
        req.setCharacterEncoding("utf-8");
        String method = req.getParameter("method");
        if ("one_line".equals(method)) 
        {
            one_line(req, resp);
        }else if("two_line".equals(method)) 
        {
            two_line(req, resp);
        }else if("four_line".equals(method)) 
        {
            four_line(req, resp);
        }else if("four_feederline".equals(method)) 
        {
            four_feederline(req, resp);
        }else if("no_transfer1".equals(method)) 
        {
            no_transfer1(req, resp);
        }else if("transfer".equals(method)) 
        {
            transfer(req, resp);
        }
        
    }
    
    
    /*
     * 搜索一号线的所有路线
     */
    private void one_line(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
        req.setCharacterEncoding("utf-8");
        String line = req.getParameter("line");
        String intro = req.getParameter("intro");
        String route = req.getParameter("route");
        String site = req.getParameter("site");
        List<SubwayBeen> ones = dao.one_line(line, intro, route,site);
        req.setAttribute("ones", ones);
        req.getRequestDispatcher("one_line_searchlist.jsp").forward(req,resp);
    }
    
    
    /*
     * 搜索二号线的所有路线
     */
    private void two_line(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
        req.setCharacterEncoding("utf-8");
        String line = req.getParameter("line");
        String intro = req.getParameter("intro");
        String route = req.getParameter("route");
        String site = req.getParameter("site");
        List<SubwayBeen> twos = dao.two_line(line, intro, route,site);
        req.setAttribute("twos", twos);
        req.getRequestDispatcher("two_line_searchlist.jsp").forward(req,resp);
    }
    /*
     * 搜索四号线的所有路线
     */
    private void four_line(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
        req.setCharacterEncoding("utf-8");
        String line = req.getParameter("line");
        String intro = req.getParameter("intro");
        String route = req.getParameter("route");
        String site = req.getParameter("site");
        List<SubwayBeen> fours = dao.four_line(line, intro, route,site);
        req.setAttribute("fours", fours);
        req.getRequestDispatcher("four_line_searchlist.jsp").forward(req,resp);
    }
    /*
     * 搜索四号线支线的所有路线
     */
    private void four_feederline(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
        req.setCharacterEncoding("utf-8");
        String line = req.getParameter("line");
        String intro = req.getParameter("intro");
        String route = req.getParameter("route");
        String site = req.getParameter("site");
        List<SubwayBeen> four_feeders = dao.four_feederline(line, intro, route,site);
        req.setAttribute("four_feeders", four_feeders);
        req.getRequestDispatcher("four_feederline_searchlist.jsp").forward(req,resp);
    }
    
    /*
     * 根据站台名查询出其中间站台
     */
    private void no_transfer1(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
        req.setCharacterEncoding("utf-8");
        
        String site = req.getParameter("site");      //从网页获取输入的起始站台
        int id1 = Integer.parseInt(dao.id(site));     //获取其站台id   将其转换为int类型
        
        String site2 = req.getParameter("site2");    //从网页获取输入的终止站台
        int id2 = Integer.parseInt(dao.id(site2));    //获取其站台id   将其转换为int类型

        if(id1<id2)
        {    
            String station=dao.station1(id1, id2);   //dao层升序车站
            req.setAttribute("stations", station);
            
            
            String line=dao.line(site);                //通过站名知道哪条线
            System.out.print(line);
            req.setAttribute("lines", line);
            
            req.getRequestDispatcher("no_transfer_searchlist.jsp").forward(req,resp);//升序车站
            req.getRequestDispatcher("no_transfer_searchlist.jsp").forward(req,resp);//升序车站
        }else
        {
            
            String station=dao.station2(id2, id1);
            req.setAttribute("stations", station);
            
            
            String line=dao.line(site);
            req.setAttribute("lines", line);
            
            req.getRequestDispatcher("no_transfer_searchlist.jsp").forward(req,resp);//降序车站
            req.getRequestDispatcher("no_transfer_searchlist.jsp").forward(req,resp);//升序车站
        }
    
    }
    
    private void transfer(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
        req.setCharacterEncoding("utf-8");
        
        String site1 = req.getParameter("site1");      //获取车站名
        int line1 = Integer.parseInt(dao.line(site1));  //将车站名获取的线路转换为整型
        int id1=Integer.parseInt(dao.id(site1));     //将车站名获取的id转换为整型
        
        String site2 = req.getParameter("site2");
        int line2 = Integer.parseInt(dao.line(site2));
        int id2=Integer.parseInt(dao.id(site2));
//--------------------------------------1到2-----------------------------------
        if(line1==1&&line2==2)
        {
            if(id1<=10)
            {
                String station1=dao.station1(id1, 10); //升序
                req.setAttribute("stations1", station1);
                req.setAttribute("line1", line1);
                if(id2<=115)
                {
                String station2=dao.station2(id2,115);    //降序
                req.setAttribute("stations2", station2);
                req.setAttribute("line2", line2);
                }else
                {
                    String station2=dao.station1(115,id2);    //升序
                    req.setAttribute("stations2", station2);
                    req.setAttribute("line2", line2);
                }
                req.getRequestDispatcher("transfer_searchlist.jsp").forward(req,resp);

            }if(id1>10)
            {
                String station1=dao.station2(10,id1); //降序
                req.setAttribute("stations1", station1);
                req.setAttribute("line1", line1);
                if(id2<=115)
                {
                String station2=dao.station2(id2,115);    //降序
                req.setAttribute("stations2", station2);
                req.setAttribute("line2", line2);
                }else
                {
                    String station2=dao.station1(115,id2);    //升序
                    req.setAttribute("stations2", station2);
                    req.setAttribute("line2", line2);
                }
                req.getRequestDispatcher("transfer_searchlist.jsp").forward(req,resp);

            }
        }
//--------------------------------------2到1---------------------------------------
        if(line1==2&&line2==1)
        {
            if(id1<=115)
            {
                String station1=dao.station1(id1, 115); //升序
                req.setAttribute("stations1", station1);
                req.setAttribute("line1", line1);
                if(id2<=10)
                {
                String station2=dao.station2(id2,10);    //降序
                req.setAttribute("stations2", station2);
                req.setAttribute("line2", line2);
                }else
                {
                    String station2=dao.station1(10,id2);    //升序
                    req.setAttribute("stations2", station2);
                    req.setAttribute("line2", line2);
                }
                req.getRequestDispatcher("transfer_searchlist.jsp").forward(req,resp);

            }if(id1>115)
            {
                String station1=dao.station2(115,id1); //降序
                req.setAttribute("stations1", station1);
                req.setAttribute("line1", line1);
                if(id2<=10)
                {
                String station2=dao.station2(id2,10);    //降序
                req.setAttribute("stations2", station2);
                req.setAttribute("line2", line2);
                }else
                {
                    String station2=dao.station1(10,id2);    //升序
                    req.setAttribute("stations2", station2);
                    req.setAttribute("line2", line2);
                }
                req.getRequestDispatcher("transfer_searchlist.jsp").forward(req,resp);
            }
        }
//--------------------------------------1到4---------------------------------------        
        
        if(line1==1&&line2==4)
        {
            if(id1<=12)
            {
                String station1=dao.station1(id1, 12); //升序
                req.setAttribute("stations1", station1);
                req.setAttribute("line1", line1);
                if(id2<=1011)
                {
                    String station2=dao.station2(id2,1011);    //降序
                    req.setAttribute("stations2", station2);
                    req.setAttribute("line2", line2);
                    }else
                    {
                        String station2=dao.station1(1011,id2);    //升序
                        req.setAttribute("stations2", station2);
                        req.setAttribute("line2", line2);
                    }
                    req.getRequestDispatcher("transfer_searchlist.jsp").forward(req,resp);
                }else
                {
                    String station1=dao.station2(12, id1); //降序
                    req.setAttribute("stations1", station1);
                    req.setAttribute("line1", line1);
                    if(id2<=1011)
                    {
                        String station2=dao.station2(id2,1011);    //降序
                        req.setAttribute("stations2", station2);
                        req.setAttribute("line2", line2);
                        }else
                        {
                            String station2=dao.station1(1011,id2);    //升序
                            req.setAttribute("stations2", station2);
                            req.setAttribute("line2", line2);
                        }
                        req.getRequestDispatcher("transfer_searchlist.jsp").forward(req,resp);
                }
            }
//--------------------------------------4到1---------------------------------------    
        if(line1==4&&line2==1)
        {
            if(id1<=1011)
            {
                String station1=dao.station1(id1, 1011); //升序
                req.setAttribute("stations1", station1);
                req.setAttribute("line1", line1);
                if(id2<=12)
                {
                    String station2=dao.station2(id2,12);    //降序
                    req.setAttribute("stations2", station2);
                    req.setAttribute("line2", line2);
                    }else
                    {
                        String station2=dao.station1(12,id2);    //升序
                        req.setAttribute("stations2", station2);
                        req.setAttribute("line2", line2);
                    }
                    req.getRequestDispatcher("transfer_searchlist.jsp").forward(req,resp);
                }else
                {
                    String station1=dao.station2(1011, id1); //降序
                    req.setAttribute("stations1", station1);
                    req.setAttribute("line1", line1);
                    if(id2<=12)
                    {
                        String station2=dao.station2(id2,12);    //降序
                        req.setAttribute("stations2", station2);
                        req.setAttribute("line2", line2);
                        }else
                        {
                            String station2=dao.station1(12,id2);    //升序
                            req.setAttribute("stations2", station2);
                            req.setAttribute("line2", line2);
                        }
                        req.getRequestDispatcher("transfer_searchlist.jsp").forward(req,resp);
                }
            }
//-----------------------------------------------2到4----------------------------------
                if(line1==2&&line2==4)
                {
                    if(id1<=112)
                    {
                        String station1=dao.station1(id1, 112); //升序
                        req.setAttribute("stations1", station1);
                        req.setAttribute("line1", line1);
                        if(id2<=1011)
                        {
                            String station2=dao.station2(id2,1008);    //降序
                            req.setAttribute("stations2", station2);
                            req.setAttribute("line2", line2);
                            }else
                            {
                                String station2=dao.station1(1008,id2);    //升序
                                req.setAttribute("stations2", station2);
                                req.setAttribute("line2", line2);
                            }
                            req.getRequestDispatcher("transfer_searchlist.jsp").forward(req,resp);

                    }else
                    {
                        String station1=dao.station2(112, id1); //降序
                        req.setAttribute("stations1", station1);
                        req.setAttribute("line1", line1);
                        if(id2<=1011)
                        {
                            String station2=dao.station2(id2,1008);    //降序
                            req.setAttribute("stations2", station2);
                            req.setAttribute("line2", line2);
                            }else
                            {
                                String station2=dao.station1(1008,id2);    //升序
                                req.setAttribute("stations2", station2);
                                req.setAttribute("line2", line2);
                            }
                            req.getRequestDispatcher("transfer_searchlist.jsp").forward(req,resp);

                    }    
                }
//-----------------------------------------------4到2----------------------------------
                if(line1==4&&line2==2)
                {
                    if(id1<=1008)
                    {
                        String station1=dao.station1(id1, 1008); //升序
                        req.setAttribute("stations1", station1);
                        req.setAttribute("line1", line1);
                        if(id2<=112)
                        {
                            String station2=dao.station2(id2,112);    //降序
                            req.setAttribute("stations2", station2);
                            req.setAttribute("line2", line2);
                            }else
                            {
                                String station2=dao.station1(112,id2);    //升序
                                req.setAttribute("stations2", station2);
                                req.setAttribute("line2", line2);
                            }
                            req.getRequestDispatcher("transfer_searchlist.jsp").forward(req,resp);
                    }else
                    {
                        String station1=dao.station2(1008, id1); //降序
                        req.setAttribute("stations1", station1);
                        req.setAttribute("line1", line1);
                        if(id2<=112)
                        {
                            String station2=dao.station2(id2,112);    //降序
                            req.setAttribute("stations2", station2);
                            req.setAttribute("line2", line2);
                            }else
                            {
                                String station2=dao.station1(112,id2);    //升序
                                req.setAttribute("stations2", station2);
                                req.setAttribute("line2", line2);
                            }
                            req.getRequestDispatcher("transfer_searchlist.jsp").forward(req,resp);

                    }    
                }
//--------------------------------------------4到4支线----------------------------------------------------
                if(line1==4&&line2==41)
                {
                    if(id1<=1018)
                    {
                        String station1=dao.station1(id1, 1018); //升序
                        req.setAttribute("stations1", station1);
                        req.setAttribute("line1", line1);
                        
                        String station2=dao.station1(10001,id2);    //升序
                        req.setAttribute("stations2", station2);
                        req.setAttribute("line2", line2);
                            
                        req.getRequestDispatcher("transfer_searchlist.jsp").forward(req,resp);
                    }else
                    {
                        String station1=dao.station2(1018, id1); //降序
                        req.setAttribute("stations1", station1);
                        req.setAttribute("line1", line1);
                        
                        
                        String station2=dao.station1(10001,id2);    //升序
                        req.setAttribute("stations2", station2);
                        req.setAttribute("line2", line2);
                            
                        req.getRequestDispatcher("transfer_searchlist.jsp").forward(req,resp);
                    }
                    
                }
//--------------------------------------------4支线到4--------------------------------------------                
                if(line1==41&&line2==4)
                {
                    String station1=dao.station2(10001, id1);//降序
                    req.setAttribute("stations1", station1);
                    req.setAttribute("line1", line1);
                    if(id2<=1018)
                    {
                        String station2=dao.station2(id2, 1018);//降序
                        req.setAttribute("stations2", station2);
                        req.setAttribute("line2", line2);
                        req.getRequestDispatcher("transfer_searchlist.jsp").forward(req,resp);
                        
                    }else
                    {
                        String station2=dao.station1(1018, id2);//升序
                        req.setAttribute("stations2", station2);
                        req.setAttribute("line2", line2);
                        req.getRequestDispatcher("transfer_searchlist.jsp").forward(req,resp);
                    }
                }
                
                
                
        }
    
    
}
    
    
    

 

知识点:从最基本的jsp连接数据库学习。         

List<类名> list=new ArrayList<>():这就像是一个容器。能把数据储存在 list里。

ResultSet rs:创建rs结果集可以用来接受储存数据。

rs = state.executeQuery(sql):就上面的代码而言,excuteQuery就是对数据库进行操作,然后再把值传给rs结果集中。

rs.getString(“id”):单独提取id这个值。

基本熟悉select语句。select site from all_line where id between 1 and 6;  搜索出id为1-6的站台。

req.getParameter("line"):getParameter就是从网页中获取输入的数据。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------

String line=dao.line(site);
req.setAttribute("lines", line);     将字符串line的数据导入到网页lines中,设置lines提供为网页的接收

<td><%=request.getAttribute("lines") %></td>   网页接受lines的数据。

posted @ 2019-03-30 17:58  birdmmxx  阅读(119)  评论(0编辑  收藏  举报