1. 程式人生 > >過關測試--庫存物資管理系統實現思想

過關測試--庫存物資管理系統實現思想

實驗要求:

1.、有一個存放商品的倉庫,每天都有商品出庫和入庫。 

2、每種商品都有名稱、生產廠家、型號、規格等。 

3、出入庫時必須填寫出入庫單據,單據包括商品名稱、生產廠家、型號、規格、數量、日期、時間、入庫單位(或出庫單位)名稱、送貨(或提貨)人姓名。

本次實驗不足:

本次上機實驗題目簡單,但在規定的時間內沒有實現全部功能最主要的原因是對於題目的理解不到位。商品資訊的增刪改查可以輕鬆實現,但是在對出入庫單的操作遇到問題,通過出入庫時間查詢商品資訊時花費時間最長,但最終在百度,以及同學的幫助下,分別在dao層、servlet層分別建立兩個不同的類去分別操作資料庫中兩個不同的表(商品資訊、出入庫單),最終在超出規定時間1小時完成了實驗,實現了相關功能。

審題十分重要,在完成任何一個專案之前,都應首先理解透專案的意思,所要實現的功能,先想,然後程式設計,才能提高工作效率。

 實現思想:

首先建立資料庫,裡面包括兩個表,分別用來儲存商品資訊、出入庫單的相關資訊。

         

然後開始編寫程式碼,實現實驗要求。

1.建立DB包,DB類方法中包括的是連線資料庫的方法,並實現資料庫關閉的方法;

2.建立JavaBean包,裡面的course類定義將要操作的物件以及其相關屬性以及get、set方法;

3.建立dao層的包,在dao包裡實現資料庫的增刪改查的方法,使用SQL語句實現,運用資料庫語言,是實驗實現的關鍵,而本次實驗中需要建立兩個類,分別實現對於資料庫的操作;

4.建立Servlet包,新建servlet,裡面包括兩大部分,第一是接受來自JSP介面的相關引數,收集引數,傳到dao層操作。第二大部分是將dao層傳回來的操作結果返回至JSP介面進行顯示,以此利用servlet來實現介面的互動跳轉操作。針對本實驗,在編寫jsp檔案時,尤其應注意method的呼叫,即路徑的編寫是否正確,如若在實現功能時,編寫錯誤,則會造成資料庫中兩個不同的表的混亂。

(工程實現時,可以再建立一個service包,實現dao中方法封裝的功能)


5.建立一系列的jsp檔案實現實驗功能實現。

主介面:利用href超連結的方法實現介面之間的跳轉(其他介面的操作也均可利用 href超連結 方法來返回主介面)。

商品資訊:新增、修改、查詢、刪除 四個不同功能的實現

新增:(1)在add.JSP頁面中的Form表格中輸入要新增的相應的資訊,通過Form表格的提交按鈕將輸入框Input中的內容和值(該值確定呼叫Servlet中的add方法)傳給Servlet;(2)在Servlet中呼叫dao層中的add方法,dao層中的add方法;(3)通過DB層獲取與資料庫的連線,實現資料庫的新增;(4)返回操作結果給Servlet的add方法,由Servlet中的add方法判斷輸出新增成功的JSP資訊頁面

刪除:(1)輸入要刪除的商品名稱,然後傳值到Servlet中;(2)在Servlet中通過呼叫dao層的查詢方法,在資料庫中查詢是否存在此商品,若存在,將商品全部資訊存入List中傳給Servlet,Servlet在用JSP檔案顯示該商品全部資訊;(3)使用者確定是否要刪除,若要刪除則繼續傳值給Servlet,呼叫Servlet中的刪除del方法,該方法呼叫Dao層的del函式,實現資料庫中的資料的刪除;(4)操作結果返回至Servlet中,在Servlet中判斷輸出一個JSP結果頁面。

修改:(1)顯示全部的資料,點選要修改的一組資料,傳值(此值為要修改的id )給Servlet;(2)Servlet中呼叫dao層的update修改方法,update方法修改資料庫中資料;(3)操作結果返回至Servlet中,JSP彈出操作結果。

查詢:(1)輸入要查詢的資訊,進行查詢,將輸入的內容通過Form表格傳值給Servlet;(2)Servlet中查詢search方法呼叫dao層的查詢search方法,在資料庫中進行查詢,將查詢到的資訊裝在List中傳給Servlet;(3)JSP返回最終查詢的資訊。

    

     

出入庫單:錄入

錄入:(1)在add1.JSP頁面中的Form表格中輸入要新增的相應的資訊,通過Form表格的提交按鈕將輸入框Input中的內容和值(該值確定呼叫Servlet1中的add1方法)傳給Servlet1;(2)在Servlet1中呼叫dao1層中的add1方法,dao1層中的add1方法;(3)通過DB層獲取與資料庫的連線,實現資料庫的新增;(4)返回操作結果給Servlet1的add1方法,由Servlet1中的add1方法判斷輸出新增成功的JSP資訊頁面

本次上機實驗部分比較重要的實驗程式碼(4種不同功能包的實現、主介面jsp程式碼等)如下,其餘jsp介面設計以及增刪改查功能程式碼並未插入:

package com.course;

public class course {
    
    private int id;
    private String name;//商品名稱
    private String changjia;//廠家
    private String xinghao;//型號
    private String size;//規格
    private String num;//數量
    private String date;//日期
    private String time;//時間
    private String danwei;//出入庫單位
    private String user;//送貨人或提貨人姓名
    
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    
    public String getChangjia() {
        return changjia;
    }
    public void setChangjia(String changjia) {
        this.changjia = changjia;
    }
    
    public String getXinghao() {
        return xinghao;
    }
    public void setXinghao(String xinghao) {
        this.xinghao = xinghao;
    }
    
    public String getSize() {
        return size;
    }
    public void setSize(String size) {
        this.size = size;
    }
    
    public String getNum() {
        return num;
    }
    public void setNum(String num) {
        this.num = num;
    }
    
    public String getDate() {
        return date;
    }
    public void setDate(String date) {
        this.date = date;
    }
    
    public String getTime() {
        return time;
    }
    public void setTime(String time) {
        this.time = time;
    }
    
    public String getDanwei() {
        return danwei;
    }
    public void setDanwei(String danwei) {
        this.danwei = danwei;
    }
    
    public String getUser() {
        return user;
    }
    public void setUser(String user) {
        this.user = user;
    }
    
    public course() {}
    
    public course(int id,String name,String changjia,String xinghao,String size,String num,String date,String time,String danwei,String user) {
        this.id = id;
        this.name = name;
        this.changjia = changjia;
        this.xinghao = xinghao;
        this.size = size;
        this.num = num;
        this.date = date;
        this.time = time;
        this.danwei = danwei;
        this.user = user;
        
    }
    public course(String name,String changjia,String xinghao,String size,String num,String date,String time,String danwei,String user) {
        this.name = name;
        this.changjia = changjia;
        this.xinghao = xinghao;
        this.size = size;
        this.num = num;
        this.date = date;
        this.time = time;
        this.danwei = danwei;
        this.user = user;
        
    }
    public course(int id,String name,String changjia,String xinghao,String size) {
        this.id = id;
        this.name = name;
        this.changjia = changjia;
        this.xinghao = xinghao;
        this.size = size;
    }
    public course(String name,String changjia,String xinghao,String size) {
        this.name = name;
        this.changjia = changjia;
        this.xinghao = xinghao;
        this.size = size;
    }

}
package com.dao;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

import com.course.course;
import com.DB.DB;

public class dao {
    
    
    
    public boolean add(course course) {
        String sql = "insert into shangpin(name, changjia, xinghao, size) values('" + course.getName() + "','" +course.getChangjia() + "','" + course.getXinghao() + "','"  +course.getSize() +"')";
        Connection con = DB.getCon();
        Statement state = null;
        boolean f = false;
        int a = 0;
        
        try {
            state = con.createStatement();
            a = state.executeUpdate(sql);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            DB.close(state, con);
        }
        
        if (a > 0) {
            f = true;
        }
        return f;
    }
    
    
    //操作資料庫,刪除
        public boolean delete (int id) {
            boolean f = false;
            String sql = "delete from shangpin where id='" + id + "'";
            
            Connection con = DB.getCon();
            Statement state = null;
            int a = 0;
            
            try {
                state = con.createStatement();
                a = state.executeUpdate(sql);
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                DB.close(state, con);
            }
            
            if (a > 0) {
                f = true;
            }
            return f;
        }
        //操作資料庫,修改
        public boolean update(course course) {
            String sql = "update shangpin set name='" + course.getName() + "', changjia='" + course.getChangjia() + "', xinghao='" + course.getXinghao()+ "', size='" + course.getSize()
                + "' where id='" + course.getId() + "'";
            Connection con = DB.getCon();
            Statement state = null;
            boolean f = false;
            int a = 0;
            int b = 0;

            try {
                state = con.createStatement();
                a = state.executeUpdate(sql);
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                DB.close(state, con);
            }
            
            if (a > 0) {
                f = true;
            }
            return f;
        }
        
        
        //驗證課程是否唯一
        public boolean name(String name) {
            boolean f = false;
            String sql = "select name from shangpin where name = '" + name + "'";
            Connection con = DB.getCon();
            Statement state = null;
            ResultSet rs = null;
            
            try {
                state = con.createStatement();
                rs = state.executeQuery(sql);
                while (rs.next()) {
                    f = true;
                }
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                DB.close(rs, state, con);
            }
            return f;
        }
        //通過id得到課程資訊
        public course getCourseById(int id) {
            String sql = "select * from shangpin where id ='" + id + "'";
            Connection con = DB.getCon();
            Statement state = null;
            ResultSet rs = null;
            course course = null;
            
            try {
                state = con.createStatement();
                rs = state.executeQuery(sql);
                while (rs.next()) {
                    String name = rs.getString("name");
                    String changjia = rs.getString("changjia");
                    String xinghao = rs.getString("xinghao");
                    String size = rs.getString("size");
                    course = new course(id, name, changjia, xinghao, size);
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                DB.close(rs, state, con);
            }
            
            return course;
        }
        //通過name得到課程資訊
        public course getCourseByName(String name) {
            String sql = "select * from shangpin where name ='" + name + "'";
            Connection con = DB.getCon();
            Statement state = null;
            ResultSet rs = null;
            course course = null;
            
            try {
                state = con.createStatement();
                rs = state.executeQuery(sql);
                while (rs.next()) {
                    int id = rs.getInt("id");
                    String changjia = rs.getString("changjia");
                    String xinghao = rs.getString("xinghao");
                    String size = rs.getString("size");
                    course = new course(id, name, changjia, xinghao,size);
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                DB.close(rs, state, con);
            }
            
            return course;
        }
        //查詢,類似於容器,盛資料
        public List<course> search(String name,String changjia,String xinghao,String size){
            String sql = "select * from shangpin where ";
            if(name != "") {
                sql += "name like '%" + name +"%'";
            }
            if(xinghao != "") {
                sql += "xinghao like '%" + xinghao +"%'";
            }
            if(changjia != "") {
                sql += "changjia like '%" + changjia +"%'";
            }
            if(size != "") {
                sql += "size like '%" + size +"%'";
            }
            List<course> list = new ArrayList<>();
            Connection con = DB.getCon();
            Statement state = null;
            ResultSet rs = null;
            
            try {
                state = con.createStatement();
                rs = state.executeQuery(sql);
                course bean = null;
                while (rs.next()) {
                    int id = rs.getInt("id");
                    String name2 = rs.getString("name");
                    String changjia2 = rs.getString("changjia");
                    String xinghao2 = rs.getString("xinghao");
                    String size2 = rs.getString("size");
                    bean = new course(id, name2, changjia2, xinghao2,size2);
                    list.add(bean);
                }
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                DB.close(rs, state, con);
            }
            return list;
        }
        //全部資料列表
        public List<course> list(){
            String sql = "select * from shangpin";
            List<course> list = new ArrayList<>();
            Connection con = DB.getCon();
            Statement state = null;
            ResultSet rs = null;
            
            try {
                state = con.createStatement();
                rs = state.executeQuery(sql);
                course bean = null;
                while (rs.next()) {
                    int id = rs.getInt("id");
                    String name2 = rs.getString("name");
                    String changjia2 = rs.getString("changjia");
                    String xinghao2 = rs.getString("xinghao");
                    String size2 = rs.getString("size");
                    bean = new course(id, name2, changjia2, xinghao2,size2);
                    list.add(bean);
                }
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                DB.close(rs, state, con);
            }
            return list;
        }


}
package com.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.DB.DB;
import com.course.course;

public class dao1 {

        //操作資料庫,新增
        public boolean add1(course course) {
            String sql = "insert into list(name, changjia, xinghao, size, num, date, time, danwei, user) values('" +course.getName() + "','" +course.getChangjia() + "','" + course.getXinghao() + "','" +course.getSize() + "','" +course.getNum() + "','" +course.getDate() + "','" +course.getTime() + "','" +course.getDanwei() + "','" +course.getUser() +"')";
            Connection con = DB.getCon();
            Statement state = null;
            boolean f = false;
            int a = 0;
            
            try {
                state = con.createStatement();
                a = state.executeUpdate(sql);
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                DB.close(state, con);
            }
            
            if (a > 0) {
                f = true;
            }
            return f;
        }
        //操作資料庫,刪除
        public boolean delete (int id) {
            boolean f = false;
            String sql = "delete from list where id='" + id + "'";
            
            Connection con = DB.getCon();
            Statement state = null;
            int a = 0;
            
            try {
                state = con.createStatement();
                a = state.executeUpdate(sql);
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                DB.close(state, con);
            }
            
            if (a > 0) {
                f = true;
            }
            return f;
        }
        //操作資料庫,修改
        public boolean update(course course) {
            String sql = "update list set name='" + course.getName() + "', changjia='" + course.getChangjia() + "', xinghao='" + course.getXinghao()+ "', size='" + course.getSize()+ "', num='" + course.getNum()+ "', date='" + course.getDate()+ "', time='" + course.getTime()+ "', danwei='" + course.getDanwei()+ "', user='" + course.getUser()
            + "' where id='" + course.getId() + "'";
        Connection con = DB.getCon();
        Statement state = null;
        boolean f = false;
        int a = 0;
        int b = 0;

        try {
            state = con.createStatement();
            a = state.executeUpdate(sql);
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DB.close(state, con);
        }
        
        if (a > 0) {
            f = true;
        }
        return f;
        }
        //驗證課程是否唯一
        public boolean name(String name) {
            boolean f = false;
            String sql = "select name from list where name = '" + name + "'";
            Connection con = DB.getCon();
            Statement state = null;
            ResultSet rs = null;
            
            try {
                state = con.createStatement();
                rs = state.executeQuery(sql);
                while (rs.next()) {
                    f = true;
                }
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                DB.close(rs, state, con);
            }
            return f;
        }
        
        //通過name得到課程資訊
        public course getCourseByName(String name) {
            String sql = "select * from list where name ='" + name + "'";
            Connection con = DB.getCon();
            Statement state = null;
            ResultSet rs = null;
            course course = null;
            
            try {
                state = con.createStatement();
                rs = state.executeQuery(sql);
                while (rs.next()) {
                    int id = rs.getInt("id");
                    String changjia = rs.getString("changjia");
                    String xinghao = rs.getString("xinghao");
                    String size = rs.getString("size");
                    String num = rs.getString("num");
                    String date = rs.getString("date");
                    String time = rs.getString("time");
                    String danwei = rs.getString("danwei");
                    String user = rs.getString("user");
                    course = new course( id,name, changjia, xinghao,size,num,date,time,danwei,user);
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                DB.close(rs, state, con);
            }
            
            return course;
        }
        
        //全部資料列表
        public List<course> list(){
            String sql = "select * from list";
            List<course> list = new ArrayList<>();
            Connection con = DB.getCon();
            Statement state = null;
            ResultSet rs = null;
            
            try {
                state = con.createStatement();
                rs = state.executeQuery(sql);
                course bean = null;
                while (rs.next()) {
                    int id = rs.getInt("id");
                    String name2 = rs.getString("name");
                    String changjia2 = rs.getString("changjia");
                    String xinghao2 = rs.getString("xinghao");
                    String size2 = rs.getString("size");
                    String num2 = rs.getString("num");
                    String date2 = rs.getString("date");
                    String time2 = rs.getString("time");
                    String danwei2 = rs.getString("danwei");
                    String user2 = rs.getString("user");
                    bean = new course(id,name2, changjia2, xinghao2,size2,num2,date2,time2,danwei2,user2);
                    list.add(bean);
                }
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                DB.close(rs, state, con);
            }
            return list;
        }
        
        public boolean chu(course course) {
            String sql = "insert into list(name, changjia, xinghao, size, num, date, time, danwei, user) values('" +course.getName() + "','" +course.getChangjia() + "','" + course.getXinghao() + "','" +course.getSize() + "','" +course.getNum() + "','" +course.getDate() + "','" +course.getTime() + "','" +course.getDanwei() + "','" +course.getUser() +"')";
            Connection con = DB.getCon();
            Statement state = null;
            boolean f = false;
            int a = 0;
            
            try {
                state = con.createStatement();
                a = state.executeUpdate(sql);
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                DB.close(state, con);
            }
            
            if (a > 0) {
                f = true;
            }
            return f;
        }
        public course getCourseByDate(String date) {
            String sql = "select * from list where date ='" + date + "'";
            Connection con = DB.getCon();
            Statement state = null;
            ResultSet rs = null;
            course course = null;
            
            try {
                state = con.createStatement();
                rs = state.executeQuery(sql);
                while (rs.next()) {
                    int id = rs.getInt("id");
                    String name = rs.getString("name");
                    String changjia = rs.getString("changjia");
                    String xinghao = rs.getString("xinghao");
                    String size = rs.getString("size");
                    String num = rs.getString("num");
                    String time = rs.getString("time");
                    String danwei = rs.getString("danwei");
                    String user = rs.getString("user");
                    course = new course( id,name, changjia, xinghao,size,num,date,time,danwei,user);
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                DB.close(rs, state, con);
            }
            
            return course;
        }
        public List<course> search1(String name, String changjia, String xinghao, String size, String num, String date,
                String time, String danwei, String user) {
            String sql = "select * from list where ";
            if(name != "") {
                sql += "name like '%" + name +"%'";
            }
            if(changjia != "") {
                sql += "changjia like '%" + changjia +"%'";
            }
            if(xinghao != "") {
                sql += "xinghao like '%" + xinghao +"%'";
            }
            if(size != "") {
                sql += "size like '%" + size +"%'";
            }
            if(num != "") {
                sql += "num like '%" + num +"%'";
            }
            if(date != "") {
                sql += "date like '%" + date +"%'";
            }
            if(time != "") {
                sql += "time like '%" + time +"%'";
            }
            if(danwei != "") {
                sql += "danwei like '%" + danwei +"%'";
            }
            if(user != "") {
                sql += "user like '%" + user +"%'";
            }
            List<course> list = new ArrayList<>();
            Connection con = DB.getCon();
            Statement state = null;
            ResultSet rs = null;
            
            try {
                state = con.createStatement();
                rs = state.executeQuery(sql);
                course bean = null;
                while (rs.next()) {
                    int id = rs.getInt("id");
                    String name2 = rs.getString("name");
                    String changjia2 = rs.getString("changjia");
                    String xinghao2 = rs.getString("xinghao");
                    String size2 = rs.getString("size");
                    String num2 = rs.getString("num");
                    String date2 = rs.getString("date");
                    String time2 = rs.getString("time");
                    String danwei2 = rs.getString("danwei");
                    String user2 = rs.getString("user");
                    bean = new course(id,name2, changjia2, xinghao2,size2,num2,date2,time2,danwei2,user2);
                    list.add(bean);
                }
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                DB.close(rs, state, con);
            }
            return list;
        }

}
package com.ser;

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.course.course;
import service.service;

/**
 * Servlet implementation class ser
 */
@WebServlet("/ser")
public class ser extends HttpServlet {
    private static final long serialVersionUID = 1L;
    
    service service = new service();
    
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ser() {
        super();
        // TODO Auto-generated constructor stub
    }
    
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        String method = request.getParameter("method");
        
        if ("add".equals(method)) {
            add(request, response);
        } else if ("del".equals(method)) {
            del(request, response);
        } else if ("update".equals(method)) {
            update(request, response);
        } else if ("search".equals(method)) {
            search(request, response);
        } else if ("getcoursebyid".equals(method)) {
            getCourseById(request, response);
        } else if ("getcoursebyname".equals(method)) {
            getCourseByName(request, response);
        } else if ("list".equals(method)) {
            list(request, response);
        }
    }
    

    private void chu(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        request.setCharacterEncoding("utf-8");
        //獲取資料
        String name = request.getParameter("name");
        String changjia = request.getParameter("changjia");
        String xinghao = request.getParameter("xinghao");
        String size = request.getParameter("size");
        String num = request.getParameter("num");
        String date = request.getParameter("date");
        String time = request.getParameter("time");
        String danwei = request.getParameter("danwei");
        String user = request.getParameter("user");
        course course = new course(name, changjia, xinghao, size, num, date, time, danwei, user);
        
        //新增後訊息顯示
        if(service.chu(course)) {
            request.setAttribute("message", "出庫單新增成功");
            request.getRequestDispatcher("chu.jsp").forward(request,response);
        } else {
            request.setAttribute("message", "商品名稱重複,請重新錄入");
            request.getRequestDispatcher("chu.jsp").forward(request,response);
        }
    }

    /**
     * 全部
     * @param request
     * @param response
     * @throws IOException 
     * @throws ServletException 
     */
    private void list(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        request.setCharacterEncoding("utf-8");
        
        List<course> courses = service.list();
        request.setAttribute("courses", courses);
        request.getRequestDispatcher("list.jsp").forward(request,response);
    }

    /**
     * 通過名字查詢
     * 跳轉至刪除
     * @param request
     * @param respnse
     * @throws IOException
     * @throws ServletException 
     */
    private void getCourseByName(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        request.setCharacterEncoding("utf-8");
        String name = request.getParameter("name");
        course course = service.getCourseByName(name);
        if(course == null) {
            request.setAttribute("message", "查無此商品!");
            request.getRequestDispatcher("del.jsp").forward(request,response);
        } else {
            request.setAttribute("course", course);
            request.getRequestDispatcher("detail.jsp").forward(request,response);
        }
    }

    /**
     * 通過ID得到Course
     * @param request
     * @param response
     * @throws IOException 
     * @throws ServletException 
     */
    private void getCourseById(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        request.setCharacterEncoding("utf-8");
        int id = Integer.parseInt(request.getParameter("id"));
        course course = service.getCourseById(id);
        request.setAttribute("course", course);
        request.getRequestDispatcher("detail2.jsp").forward(request,response);
    }

    /**
     * 查詢
     * @param requst
     * @param respponse
     * @throws IOException 
     * @throws ServletException 
     */
    private void search(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        request.setCharacterEncoding("utf-8");
        
        String name = request.getParameter("name");
        String changjia = request.getParameter("changjia");
        String xinghao = request.getParameter("xinghao");
        String size = request.getParameter("size");
        course course = new course(name, changjia, xinghao,size);
        List<course> courses = service.search(name, changjia, xinghao,size);
        request.setAttribute("courses", courses);
        request.getRequestDispatcher("searchlist.jsp").forward(request,response);
    }

    /**
     * 修改
     * @param requst
     * @param respponse
     * @throws IOException 
     * @throws ServletException 
     */
    private void update(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        request.setCharacterEncoding("utf-8");
        int id = Integer.parseInt(request.getParameter("id"));
        String name = request.getParameter("name");
        String changjia = request.getParameter("changjia");
        String xinghao = request.getParameter("xinghao");
        String size = request.getParameter("size");
        course course = new course(name, changjia, xinghao,size);
        
        service.update(course);
        request.setAttribute("message", "修改成功");
        request.getRequestDispatcher("ser?method=list").forward(request,response);
        
    }

    /**
     * 刪除
     * @param requst
     * @param respponse
     * @throws IOException 
     * @throws ServletException 
     */
    private void del(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        request.setCharacterEncoding("utf-8");
        int id = Integer.parseInt(request.getParameter("id"));
        service.del(id);
        request.setAttribute("message", "刪除成功!");
        request.getRequestDispatcher("del.jsp").forward(request,response);
    }

    /**
     * 新增
     * @param requst
     * @param respponse
     * @throws IOException 
     * @throws ServletException 
     */
    private void add(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        request.setCharacterEncoding("utf-8");
        //獲取資料
        String name = request.getParameter("name");
        String changjia = request.getParameter("changjia");
        String xinghao = request.getParameter("xinghao");
        String size = request.getParameter("size");
        course course = new course(name, changjia, xinghao,size);
        
        //新增後訊息顯示
        if(service.add(course)) {
            request.setAttribute("message", "新增成功");
            request.getRequestDispatcher("add.jsp").forward(request,response);
        } else {
            request.setAttribute("message", "商品名稱重複,請重新錄入");
            request.getRequestDispatcher("add.jsp").forward(request,response);
        }
    }

    private void ru(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        request.setCharacterEncoding("utf-8");
        //獲取資料
        String name = request.getParameter("name");
        String changjia = request.getParameter("changjia");
        String xinghao = request.getParameter("xinghao");
        String size = request.getParameter("size");
        String num = request.getParameter("num");
        String date = request.getParameter("date");
        String time = request.getParameter("time");
        String danwei = request.getParameter("danwei");
        String user = request.getParameter("user");
        course course = new course(name, changjia, xinghao, size, num, date, time, danwei, user);
        
        //新增後訊息顯示
        if(service.ru(course)) {
            request.setAttribute("message", "入庫單新增成功");
            request.getRequestDispatcher("ru.jsp").forward(request,response);
        }else {
            request.setAttribute("message", "商品名稱重複,請重新錄入");
            request.getRequestDispatcher("ru.jsp").forward(request,response);
        }
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        response.getWriter().append("Served at: ").append(request.getContextPath());
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}
package com.ser;

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.course.course;

import service.service1;;

/**
 * Servlet implementation class ser1
 */
@WebServlet("/ser1")
public class ser1 extends HttpServlet {
    private static final long serialVersionUID = 1L;
    
    service1 service = new service1();
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ser1() {
        super();
        // TODO Auto-generated constructor stub
    }
    
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        String method = request.getParameter("method");
        
        if ("add".equals(method)) {
            add1(request, response);
        } else if ("del".equals(method)) {
            del1(request, response);
        } else if ("update".equals(method)) {
            update1(request, response);
        } else if ("search".equals(method)) {
            search1(request, response);
        } else if ("getcoursebydate".equals(method)) {
            getCourseByDate(request, response);
        } else if ("getcoursebyname".equals(method)) {
            getCourseByName(request, response);
        } else if ("list".equals(method)) {
            list(request, response);
        }else if ("chu".equals(method)) {
            chu(request, response);
        }
    }

    private void chu(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        request.setCharacterEncoding("utf-8");
        //獲取資料
        String name = request.getParameter("name");
        String changjia = request.getParameter("changjia");
        String xinghao = request.getParameter("xinghao");
        String size = request.getParameter("size");
        String num = request.getParameter("num");
        String date = request.getParameter("date");
        String time = request.getParameter("time");
        String danwei = request.getParameter("danwei");
        String user = request.getParameter("user");
        course course = new course(name, changjia, xinghao, size, num, date, time, danwei, user);
        
        //新增後訊息顯示
        if(service.chu(course)) {
            request.setAttribute("message", "出庫單新增成功");
            request.getRequestDispatcher("chu.jsp").forward(request,response);
        } else {
            request.setAttribute("message", "商品名稱重複,請重新錄入");
            request.getRequestDispatcher("chu.jsp").forward(request,response);
        }
    }

    /**
     * 全部
     * @param request
     * @param response
     * @throws IOException 
     * @throws ServletException 
     */
    private void list(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        request.setCharacterEncoding("utf-8");
        
        List<course> courses = service.list();
        request.setAttribute("courses", courses);
        request.getRequestDispatcher("list.jsp").forward(request,response);
    }

    /**
     * 通過名字查詢
     * 跳轉至刪除
     * @param request
     * @param respnse
     * @throws IOException
     * @throws ServletException 
     */
    private void getCourseByName(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        request.setCharacterEncoding("utf-8");
        String name = request.getParameter("name");
        course course = service.getCourseByName(name);
        if(course == null) {
            request.setAttribute("message", "查無此出入庫單!");
            request.getRequestDispatcher("del.jsp").forward(request,response);
        } else {
            request.setAttribute("course", course);
            request.getRequestDispatcher("detail.jsp").forward(request,response);
        }
    }

    /**
     * 通過ID得到Course
     * @param request
     * @param response
     * @throws IOException 
     * @throws ServletException 
     */
    private void getCourseByDate(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        request.setCharacterEncoding("utf-8");
        String date = request.getParameter("date");
        course course = service.getCourseByDate(date);
        request.setAttribute("course", course);
        request.getRequestDispatcher("detail2.jsp").forward(request,response);
    }

    /**
     * 查詢
     * @param requst
     * @param respponse
     * @throws IOException 
     * @throws ServletException 
     */
    private void search1(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        request.setCharacterEncoding("utf-8");
        
        String name = request.getParameter("name");
        String changjia = request.getParameter("changjia");
        String xinghao = request.getParameter("xinghao");
        String size = request.getParameter("size");
        String num = request.getParameter("num");
        String date = request.getParameter("date");
        String time = request.getParameter("time");
        String danwei = request.getParameter("danwei");
        String user = request.getParameter("user");
        course course = new course(name, changjia, xinghao, size, num, date, time, danwei, user);
        List<course> courses = service.search1(name, changjia, xinghao, size, num, date, time, danwei, user);
        request.setAttribute("courses", courses);
        request.getRequestDispatcher("searchlist.jsp").forward(request,response);
    }

    /**
     * 修改
     * @param requst
     * @param respponse
     * @throws IOException 
     * @throws ServletException 
     */
    private void update1(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        request.setCharacterEncoding("utf-8");
        int id = Integer.parseInt(request.getParameter("id"));
        String name = request.getParameter("name");
        String changjia = request.getParameter("changjia");
        String xinghao = request.getParameter("xinghao");
        String size = request.getParameter("size");
        String num = request.getParameter("num");
        String date = request.getParameter("date");
        String time = request.getParameter("time");
        String danwei = request.getParameter("danwei");
        String user = request.getParameter("user");
        course course = new course(name, changjia, xinghao, size, num, date, time, danwei, user);
        
        service.update1(course);
        request.setAttribute("message", "修改成功");
        request.getRequestDispatcher("ser?method=list").forward(request,response);
        
    }

    /**
     * 刪除
     * @param requst
     * @param respponse
     * @throws IOException 
     * @throws ServletException 
     */
    private void del1(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        request.setCharacterEncoding("utf-8");
        int id = Integer.parseInt(request.getParameter("id"));
        service.del1(id);
        request.setAttribute("message", "刪除成功!");
        request.getRequ