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>