2021-05-14

package dbmnt;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/** コントローラ用サーブレット **/
public class mainController extends HttpServlet {

    /**
     *
     */
    private static final long serialVersionUID = 1L;

    // サーブレットの初期化メソッド(Tomcat起動時に呼び出される)
    public void init() throws ServletException {

    }

    // GETメソッドでリクエストされた際の処理
    public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

        // doPost()に処理をまかせる
        doPost(request, response);
    }

    //  POSTメソッドでリクエストされた際の処理
    public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

        //セッションオブジェクト取り出し
        HttpSession session;

        // エンコードの指定(日本語コードを正しく取得するために設定する。)
        request.setCharacterEncoding("Windows-31J");

        String action = null;

        String button1 = request.getParameter("paraButton1");
        String button2 = request.getParameter("paraButton2");
        String button3 = request.getParameter("paraButton3");
        String button4 = request.getParameter("paraButton4");
        if(action == null){
            action = "init";
        }

        if(button1 != null && button1.equals(" 参照 ")){
            action = "select";
        }

        if(button2 != null && button2.equals(" 更新 ")){
            action = "update";
        }
        if(button3 != null && button3.equals(" 消す ")){
            action = "reset";
        }
        if(button4 != null && button4.equals(" 追加 ")){
            action = "add";
        }

        //セッションオブジェクト取り出し
        session = request.getSession(false);

        if(action.equals("init")){
        }
        else if(action.equals("select")){
            String custID = request.getParameter("paraCustID");

            //デバック用に表示
            System.out.println(custID);

            if(session != null){
                ItemIo jspObj = (ItemIo)session.getAttribute("KokyakuIo");

                //ItemIoクラス、「顧客マスタ、レコード読み込み」起動
                jspObj.setCustID(custID);
                jspObj.custSel();
            }
        }
        else if(action.equals("update")){
            String custID  = request.getParameter("paraCustID");
            String custNm  = request.getParameter("paraCustNm");
            String custTel = request.getParameter("paraCustTel");

            //デバック用に表示
            System.out.println("custID= " + custID);
            System.out.println("custNm= " + custNm);
            System.out.println("custTel= " + custTel);

            if(session != null){
                ItemIo jspObj = (ItemIo)session.getAttribute("KokyakuIo");

                //ItemIoクラス、「顧客マスタ、レコード書き込み」起動
                jspObj.setCustID(custID);
                jspObj.setCustNm(custNm);
                jspObj.setCustTel(custTel);
                jspObj.custUpd();
            }
        }
        else if(action.equals("reset")) {
            String custID  = request.getParameter("paraCustID");


            if(session != null){
                if(custID!="") {
                    ItemIo jspObj = (ItemIo)session.getAttribute("KokyakuIo");

                    jspObj.clearCustID();
                    jspObj.clearCustNm();
                    jspObj.clearCustTel();


                }
                else {
                    ItemIo jspObj = (ItemIo)session.getAttribute("KokyakuIo");
                    jspObj.clearJud();

                }
            }
        }
    else if(action.equals("add")){

//jspから
            String custID  = request.getParameter("paraCustID");
            String custNm  = request.getParameter("paraCustNm");
            String custTel = request.getParameter("paraCustTel");

//beans 对象
            if(session != null){
                ItemIo jspObj = (ItemIo)session.getAttribute("KokyakuIo");

                jspObj.setCustID(custID);
                jspObj.setCustNm(custNm);
                jspObj.setCustTel(custTel);


                    //このidの情報があるがを判断する


                try {
                    int temp=jspObj.TestSel();
                    if (temp==1) {
                         jspObj = (ItemIo)session.getAttribute("KokyakuIo");
                         jspObj.testJud();


                    }
                    else {
                        jspObj.setCustID(custID);
                        jspObj.setCustNm(custNm);
                        jspObj.setCustTel(custTel);
                        jspObj.custUpd();

                    }
                    }
                catch (NumberFormatException e) {
                    // TODO 自動生成された catch ブロック
                    e.printStackTrace();
                }


                    }

        // Viewへフォワード、JSPトップページ表示
        ServletContext context = getServletContext();
        RequestDispatcher rd = context.getRequestDispatcher("/top.jsp");
        rd.forward(request, response);

}}}
 

 

package dbmnt;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.naming.InitialContext;
import javax.sql.DataSource;

//-----------------------------------------------------------
//  データベースへ接続し、オブジェクトのデータを取得するクラス
//-----------------------------------------------------------
public class DbIo {

    //顧客名
    String     custNm;
    //連絡先
    String     custTel;
    String custNo;

    //------ 接続メソッド
    private Connection createConnection() {
        try {
            //--- DataSourceを使用してデータベースへ接続
            InitialContext ic = new InitialContext();
            DataSource ds = (DataSource) ic.lookup("java:comp/env/jdbc/myds");
            Connection con = ds.getConnection();
            return con;

        } catch (SQLException ex) {
            System.out.println("SQL failed");
            ex.printStackTrace();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return null;
    }

    //------ 切断メソッド
    private void closeConnection(Connection con) {
        try {
            con.close();
        } catch (Exception ex) {
        }
    }

    //------ 顧客マスタ、レコード読み込みメソッド
    public int TestSel(int custID) throws SQLException {
        Connection con = createConnection();

        try {

            //--- SQLをデータベースへ送信
            //顧客マスタ読み込み
            String query = "SELECT * FROM 顧客マスタ WHERE 顧客ID = " + custID;
            System.out.println("SQL=["+query+"]");

            Statement stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery(query);
            custNm = rs.getString("顧客名");
            custTel = rs.getString("連絡先");
            System.out.println(custNm +custTel);
            if((custNm!=null)&&(custTel!=null)) {
                custNo="idあります";
             return 1;
             }
            else {
                return 0;
            }

        }

        finally {
                //--- データベースから切断

            closeConnection(con);
            }

    }
    public void RecSel(int custID) {

        //--- データベースへ接続
        Connection con = createConnection();

        try {
            //--- SQLをデータベースへ送信
            //顧客マスタ読み込み
            String query = "SELECT * FROM 顧客マスタ WHERE 顧客ID = " + custID;
            System.out.println("SQL=["+query+"]");

            Statement stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery(query);

            //--- 検索結果から顧客マスタ情報を作成
            if(rs.next()){
                custNm = rs.getString("顧客名");
                custTel = rs.getString("連絡先");
                custNo="";
            }
            else {
                custNm ="";
                custTel ="";
                custNo="no iof";
            }

            rs.close();
            stmt.close();
        } catch (SQLException ex) {
            System.out.println("SQL failed");
            ex.printStackTrace();
        } finally {
            //--- データベースから切断
            closeConnection(con);
        }
    }
    //------ 顧客マスタ、レコード書き込みメソッド
    public void RecUpd(int custID, String custNm, String custTel) {

        //--- データベースへ接続
        Connection con = createConnection();

        try {
            //--- SQLをデータベースへ送信
            //顧客マスタ読み込み
            String query = "UPDATE 顧客マスタ SET 顧客名 = '" + custNm + "', 連絡先 = '" + custTel + "' " +
                                "WHERE 顧客ID = " + custID;
            System.out.println("SQL=["+query+"]");

            Statement stmt = con.createStatement();
            int ret = stmt.executeUpdate(query);

            stmt.close();
        } catch (SQLException ex) {
            System.out.println("SQL failed");
            ex.printStackTrace();
        } finally {
            //--- データベースから切断
            closeConnection(con);
        }
    }

}
 

 

package dbmnt;

import java.sql.SQLException;

//-----------------------------------------------------------
//顧客マスタクラス
//-----------------------------------------------------------
public class ItemIo {

    //顧客ID
    private String     custID;
    //顧客名
    private String     custNm;
    //連絡先
    private String     custTel;
    private String     custNo;
    private boolean Testresult;
    //使用クラス、インスタンス
    private DbIo  dbIO = new DbIo();

    //------ 引数のないコンストラクタは常に用意します。
    public ItemIo() {
        custID = "";
        custNm = "";
        custTel = "";
        custNo  ="";
    }
    //------ 顧客状態のGETTER
        public String getCustNo() {
            return this.custNo;
        }

        //------ 顧客名のSETTER
        public void setCustNo(String newValue) {
            if(newValue != null) {
                custNo = newValue;
            }
        }
    //------ 引数のあるコンストラクタ
    public ItemIo(String id, String name, String tel) {
        this.custID  = id;
        this.custNm = name;
        this.custTel = tel;
    }

    //------ 顧客IDのGETTER
    public String getCustID() {
        return this.custID;
    }

    //------ 顧客IDのSETTER
    public void setCustID(String newValue) {
        if(newValue != null) {
            custID = newValue;
        }
    }

    //------ 顧客名のGETTER
    public String getCustNm() {
        return this.custNm;
    }

    //------ 顧客名のSETTER
    public void setCustNm(String newValue) {
        if(newValue != null) {
            custNm = newValue;
        }
    }

    //------ 連絡先のGETTER
    public String getCustTel() {
        return this.custTel;
    }

    //------ 連絡先のSETTER
    public void setCustTel(String newValue) {
        if(newValue != null) {
            custTel = newValue;
        }
    }
    public void clearCustID() {

            custID ="";

    }
    public void clearCustTel() {

        custTel ="";

}
public void clearCustNm() {

        custNm ="";

}
    //------ 顧客マスタ、レコード読み込み
public void clearJud() {

    custNo="情報がないです";
}
//------ IDが既に存在しているがを判断
public void testJud() {

    custNo="既に存在している";
}
public int TestSel()
 {

    int t = 0;
    try {
        t = dbIO.TestSel(Integer.parseInt(custID));
    } catch (NumberFormatException e) {
        // TODO 自動生成された catch ブロック
        e.printStackTrace();
    } catch (SQLException e) {
        // TODO 自動生成された catch ブロック
        e.printStackTrace();
    }
    return t;
}
public void custSel(){

        dbIO.RecSel(Integer.parseInt(custID));
        custNo=dbIO.custNo;
        //顧客名セット
        custNm = dbIO.custNm;
        //連絡先セット
        custTel = dbIO.custTel;
    }
    //------ 顧客マスタ、レコード書き込み
    public void custUpd(){
        dbIO.RecUpd(Integer.parseInt(custID), custNm, custTel);
    }
}
 

 

 

<%@ page contentType="text/html; charset=Windows-31J" errorPage="ErrorPage.jsp" %>
<html>
<head>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <title>顧客マスタ保守</title>
</head>

<jsp:useBean id="KokyakuIo" scope="session" class="dbmnt.ItemIo" />

<body bgcolor="silver">
<div align="center">
<br>
<font size="5"><b>顧客マスタ更新</b></font>
<br><br><br>

    <form action="mainController" method="post">
    <table align ="center">

        <tr>
            <td>顧客ID</td>
            <td><input type="text" name="paraCustID" value="<jsp:getProperty name="KokyakuIo" property="custID" />" size="4" maxlength="4">
                          <jsp:getProperty name="KokyakuIo" property="custNo" /></td>
            <td></td>

            <td></td>
        </tr>
        <td></td>
        <tr>

        </tr>
        <tr>
            <td>顧客名</td>
            <td><input type="text" name="paraCustNm" value="<jsp:getProperty name="KokyakuIo" property="custNm" />" size="25" maxlength="25"> </td><jsp:getProperty name="KokyakuIo" property="custNo"/>

        </tr>

        <tr>
            <td>連絡先</td>
            <td><input type="text" name="paraCustTel" value="<jsp:getProperty name="KokyakuIo" property="custTel" />" size="25" maxlength="25"><jsp:getProperty name="KokyakuIo" property="custNo" /></td>

        </tr>
<tr>
<td></td>

</tr>
        <tr><td> <input type="submit" name="paraButton2" value=" 更新 "></td><td> 
        <input type="submit" name="paraButton4" value=" 追加 ">    
        <input type="submit" name="paraButton1" value=" 参照 ">  
        <input type="submit" name="paraButton3" value=" 消す "></td><td></td><tr><td> 
        </tr>
        <tr><td> </td><td> </td></tr>

        <tr>
            <td></td>
        </tr>
    </table>
    </form>
</div>
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值