i
目 次
1. 情報システムの概要 1 1.1 問題解決とコンピュータの活用 1.2 情報処理システムの種類と実際 1.3 情報システムの変遷 1.4 情報システムの実際 2. システム開発の手順 5 2.1 システム開発手順の概要 2.2 ウォータフォールモデル 3. システム分析と要求定義 9 3.1 システム分析と要求定義の概論 3.2 分析技法 3.3 要求仕様書 3.4 問題演習 4. 情報シ ステムの分析・設計例 18 4.1 現状の卸売店の組織と情報の流れ 4.2 新システムの構想に基づく販売管理 4.3 新システムの枠組み 5. データベースの設計 23 5.1 データ項目の洗い出し 5.2 データの正規化 5.3 問題演習 6. コードの設計 27 6.1 コードの必要性 6.2 コードの機能 6.3 コード設計の手順 6.4 コードのチェック 7. Access の基礎 29 7.1 ACCESS の基本 7.2 テーブル 7.3 クエリ 7.4 リレーションシップ 7.5 式の作成 7.6 問題演習ii 8. SQL の基礎 56 8.1 テーブルの作成 8.2 制約 8.3 データの登録 8.4 データの取り出し 8.5 条件に合うデータを取り出す 8.6 登録されている値の更新 8.7 登録されているデータの削除 8.8 テーブルの結合 8.9 JetSQL データ型 8.10 問題演習 9. データベースの設計実習(Access) 65 問題 受注伝票 10. JAVA の基礎 67 10.1 アプリケーション・プログラムの例 10.2 基本データ型 10.3 変数の宣言 10.4 常数 10.5 特殊文字 10.6 演算子 10.7 プログラムの基本三構造 11. システムの設計実習(JAVA/Access) 84 11.1 データベースの接続と SQL 言語 11.2 画面(GUI)を用いたデータの入力と出力 12. テスト 90 12.1 テストの種類 12.2 テスト技法 13. 運用 93 13.1 平常時の運用手順 13.2 障害時の運用手順 資料 1 受注伝票の正規化 1-1~2 資料 2 「受注」「商品」「顧客」「受注明細」テーブル 2-1~2 資料 3 NetBeans の操作法 3-1~2 資料 4 データソースの設定 4-1 参考文献
1
1. 情報システムの概要
1.1 問題解決とコンピュータの活用 (1)意思決定の手順 意思決定とは、行動するに当たって選択できるいくつかの案(代替案)の中から、一つ 又は複数の案を選択することである。 情報の収集 → 代替案の作成 → 選択 情報システムは、意思決定を支援するために、必要な情報を、必要な時に、必要とする 人や組織に提供するためのシステムである。 (2)問題解決の手順 問題解決は、解決すべき問題に対して目標を定め、その目標に近づくために行う意思決 定とそれに基づく一連の過程である。 問題を見つける → 問題を調べる(問題の分析) → 問題の解決方法をまとめる(解 決策の提案) → 行動する 問題解決には、対象をシステムとして捉え、そこに発生する問題を解決して行くための 意思決定と情報の関係を体系的に整理すること(システム思考)が有効である。 (3)コンピュータの特性と情報処理 コンピュータの特性は自動性、高速性、正確性及び大量性である。 コンピュータの情報処理の長所は大量のデータを高速処理する業務に適している。同じ 処理を繰り返し処理する定型業務は効率が良い。短所は、推論や直感に基づいて問題解決 する業務、少量で周期性がない業務(非定型業務)は処理に適さない。 1.2 情報処理システムの種類と実際 (1)バッチ処理 処理すべきデータを一定期間蓄積し、一括して処理する処理形式。 センターバッチ処理、リモートバッチ処理がある。 (2)リアルタイム処理 データが発生するつど処理を行い、その結果を報告する処理形式。 リアルタイム処理、オンラインリアルタイム処理がある。 (3)集中処理と分散処理 集中処理は、組織全体のデータを一台の処理能力が高い大型コンピュータで処理する方 式。 分散処理は、独立して処理する能力を持つ中型や小型のコンピュータをネットワークで 結ぶことにより、処理を分散する方式。 垂直分散システム、水平分散システムがある。 (4)クライアント・サーバシステム 複数のコンピュータをネットワークで結び、コンピュータを機能ごとに専門化して処理 を分担させるシステム。 (5)イントラネット 通信プロトコル(TCP/IP)等、インターネット標準の技術を用いて構築された企業内ネッ2 トワークシステム。インターネット標準の技術は多くのメーカが対応製品を出荷している ため、カスタムメイドよりもシステムのコストを低くできる。又、WWW ブラウザや電子 メール等、インターネットで使いなれたアプリケーションソフトを流用できるため、イン ターネットと連携したアプリケーションの構築ができる。 1.3 情報システムの変遷
1950
年代
1 9 6 0
年代
1 9 7 0
年代
1 9 8 0
年代
システ
ムの概
念
EDPS MIS
DSS
EIS
OA
SIS
目的
事務の合
理化
経 営 管 理
の シ ス テ
ム化
経 営 処 理
の向上
経 営 の 戦
略化
情
報
シ
ス
テ
ム 情報処
理シス
テム
バッチ
オンライン リア ルタ イ ム 処理 タイムシアリ ング処理 分散処理 クラ イン ト サ ーバ処理ハード
ウェア
第1世代 第2世代
第3世代
第3.5世
代
第4世代
開
発
環
境
ソフト
ウェア
機械語
アセ ンブ ラ 言 語 コン パイ ル 言 語 ソフトウェア ツール プロダクトの 普及 リレ ーシ ョ ナ ルデ ータ ベ ー スの普及・EDPS(Electric Data Processing System) コンピュータを用いた情報処理 ・MIS(Management Information System) 経営情報システム
・DSS(Decision Support System) 経営意思決定支援システム ・EIS(Executive Information System) 経営者向け情報システム ・OA(Office Automation) オフィスオートメーション
3 1990~2000 年代 2010 年代(未来) 情 報 シ ス テ ム システム の概念 GIS CC 目的 企業と個人のコミュニケーションチ ャネルが地球レベルに進展 IT が社会基盤の一つ 情報処理 システム クライアント・サーバ処理とインタ ーネットの結合(国際化) コンピュータ処理をネットワーク 経由で利用 開 発 環 境 ハードウ ェア 素子の集積度からシステムのネット ワーク化へ IT の所有からサービス利用へ ソフトウ ェア Web がアプリケーション及びデータ ベースと結合
SaaS, PaaS, IaaS(プロバイダーサ ービスの仮想化)
・GIS(Global Information System) 世界を結ぶ情報通信システム(インターネットが基幹) ・CC(Cloud Computing) クラウド・コンピューティング(雲の中にプロバイダーサービス がある) ・SaaS(Software as a Service) 必要な機能を必要な量だけインターネット経由のサービス として利用できる提供形態 ・PaaS(Platform as a Service) プラットフォームをインターネット経由のサービスとして 利用できる提供形態(SaaS の発展形) ・IaaS(Infrastructure as a Service) コンピュータシステムを構築および稼動させるため の基盤(仮想マシンやネットワークなどのインフラ)をインターネット経由のサービス として利用できる提供形態(PaaS の発展形) (参考文献 http://ja.wikipedia.org/wiki)
4 1.4 情報システムの実際 (1) 予約システム オンライントランザクション処理の代表。 予約システム センター マスタファイル データ 予約システム センター マスタファイル データ
(2) POS システム(Point Of Sales system;販売時点情報管理システム)
店舗内のコンピュータと電子自動読取レジスターをつないで、販売時点・単品毎に販売 情報を収集・蓄積・分析するシステム。 小売店 POSレジスタ 配送センター 工場 製造メーカー(本社) ホストコンピュータ 商品 商品 販売データ POSシステム 小売店 POSレジスタ 配送センター 工場 製造メーカー(本社) ホストコンピュータ 商品 商品 販売データ POSシステム (3) 電子商取引(electric-commerce) インターネット等のネットワークを利用して、契約や決済などを行なう取引形態。従来 から企業間の取引の一部は EDI(Electronic Data Interchange)などの技術を使って電子 化されていたが、インターネットが一般消費者に普及するにつれて、消費者を直接対象に した電子商取引サービスが急激に成長している。
電子商取引は大きく 3 つに分けられ、企業同士の取引を「B to B」(Business
to Business)、企業・消費者間の取引を「B to C」(Business to Consumer)、
消費者同士の取引を「C to C」(Consumer to Consumer)と言う。
56
8. SQL の基礎
8.1 テーブルの作成
Goods_Code, Goods_Name, Unit, Price という列をもつ Goods テーブルを作成します。 CREATE TABLE Goods( Goods_Code LONG PRIMARY KEY , Goods_Name TEXT(40), Unit TEXT(30), Price LONG )
Goods_Code Goods_Name Unit Price
(注意)データ定義言語の終わりには、「;(セミコロン)」を付けません。 8.2 制約 制約とは、登録するデータを正しい状態に保つための条件です。テーブルを作成する時 に制約を設定すると、データの登録時に制限をかけることができます。 制約には、単一の列に設定する列制約と、複数の列にまとめて設定するテーブル制約(連 結キーなど)があります。 主な制約の種類は次のとおりです。 制約 意味
PRIMARY KEY(主キー) データの重複を禁止する。NULL 値を禁止する。
UNIQUE データに一意性を持たせる。
NOT NULL NULL 値を禁止する。
CREATE TABLE OrderDetails(No LONG, Goods_Code LONG, Quantity LONG, PRIMARY KEY(No, Goods_Code))
No Goods_Code Quantity
8.3 データの登録(挿入) INSERT 文を使用します。
INSERT INTO Goods(Goods_Code, Goods_Name, Unit, Price) VALUES(1, ‘果汁 100% オレンジ’, ‘200g瓶’, 200); テーブル名 列名 データ型 複数の列を定義する時、 「,」で区切ります。 半角スペース 半角スペース テーブル名 データを列名の記述順序と対応するように記述:文字列の場合は「’(シングルクオテーシ ョン)」で囲み、各データは「,(カンマ)」で区切ります。 登録する列名を列挙:各列は「,(カンマ)」で区切ります。 列名を省略した場合は、全ての列に挿入します。 制約 Goods テーブル OrderDetails テーブル
57
Goods_Code Goods_Name Unit Price 1 果汁 100% オレンジ 200g 瓶 200 (注意)データ操作言語の終わりには、「;(セミコロン)」を付ける。 8.4 データの取り出し
SELECT 文を使い、取り出したいテーブルを FROM 句で指定します。 SELECT * FROM Goods;
Goods_Code Goods_Name Unit Price 1 果汁 100% オレンジ 200g 瓶 200
SELECT Goods_Name, Price FROM Goods; Goods_Name Price
果汁100% オレンジ 200
8.5 条件に合うデータを取り出す
特定の条件に合うデータだけを取り出す場合は、WHERE 句を使います。 SELECT Goods_Name FROM Goods WHERE Goods_Code=3;
Goods テーブルから、Goods_Code 列が 3 の商品名を取り出します。 Goods_Code Goods_Name Unit Price
1 果汁 100% オレンジ 200g 瓶 200 2 果汁 100% ピーチ 200g 瓶 210 3 コーヒーミルク 195g 缶 190 Goods_Name コーヒーミルク WHRER 句では、比較演算子を使って値や数値を比較して条件式を作ります。演算の結 果、条件が成立した場合は TRUE(真)、成立しない場合は FALSE(偽)となります。TRUE のデータだけが返されます。 全部の列を取り出す場合は「*(アスタリクス)」とします。 テーブル名 指定した列のデータだけを取り出す場合は、列名を「,(カンマ)」で 区切って列挙します。 列名 テーブル名 条件式 Goods テーブル
58 演算子 使い方 意味 = A = B A と B は等しい < A < B A は B より小さい <= A <= B A は B 以下 > A > B A は B より大きい >= A >= B A は B 以上 <> != A <> B A != B A と B は等しくない 8.6 登録されている値の更新 UPDATE 文を使って、テーブルに登録されている値を更新します。 UPDATE Goods SET Price = 220 WHERE Goods_Code = 2;
Goods_Code 列の値が 2 の行の Price 列の値を 220 にします。 Goods_Code Goods_Name Unit Price
1 果汁 100% オレンジ 200g 瓶 200 2 果汁 100% ピーチ 200g 瓶 220 3 コーヒーミルク 195g 缶 190
複数の列の値を更新するには、更新内容を「,(カンマ)」で区切って列挙します。
UPDATE Goods SET Goods_Name = ‘果汁 100% グレープ’, Price = 180 WHERE Goods_Code = 2;
Goods_Code 列の値が 2 の行の Goods_Name 列を「果汁 100% グレープ」に Price 列 の値を180 にします。
Goods_Code Goods_Name Unit Price 1 果汁 100% オレンジ 200g 瓶 200 2 果汁 100% グレープ 200g 瓶 180 3 コーヒーミルク 195g 缶 190 8.7 登録されているデータの削除 テーブルに登録されているデータを削除するには、DELETE 文を使います。その際、 WHERE 句を使って削除する行を指定します。 テーブル名 更新内容 更新する列名と新しい値 を「=」で結びます。 条件式 更新行を指定します。
59
DELETE FROM Goods WHERE Goods_Name = ‘コーヒーミルク’;
Goods_Code Goods_Name Unit Price 1 果汁 100% オレンジ 200g 瓶 200 2 果汁 100% グレープ 200g 瓶 180
WHERE 句を使って行を特定しないと、全ての行が削除されます。 DELETE FROM Goods;
Goods テーブルのデータが全て削除されます。
Goods_Code Goods_Name Unit Price 8.8 テーブルの結合 複数のテーブルを連結して、データを一度に扱うことが出来ます。 次に示す種類の結合があります。 交差結合 内部結合 1 1 1 1 2 1 2 2 3 1 1 2 2 2 3 2 1 4 2 4 3 4 テーブル A テーブル B 1 + 1 2 2 3 4 全外部結合 左外部結合 右外部結合 1 1 1 1 1 1 2 2 2 2 2 2
NULL 4 3 NULL NULL 4
3 NULL テーブル名 条件式 削除するデータを指定します。 テーブルA のデータ テーブルB のデータ テーブルB のデータ テーブルA のデータ テーブルA のデータ テーブルA のデータ テーブルA のデータ テーブルB のデータ テーブルB のデータ テーブルB のデータ
60 No Goods_Code Quantity
12503 1 18 12503 2 15 12503 10 32
Goods_Code Goods_Name Unit Price 1 果汁 100% オレンジ 200g 瓶 200 2 果汁 100% ピーチ 200g 瓶 210 3 コーヒミルク 195g 缶 190
●内部結合
指定した列の値が一致するデータのみを取り出す方法。
SELECT * FROM OrderDetails INNER JOIN Goods ON OrderDetails.Goods_Code = Goods.Goods_Code;
No
OrderDetails.
Goods_Code Quantity
Goods.
Goods_Code Goods_Name Unit Price
128503 1 18 1 果汁100% オレンジ 200g 瓶 200 128503 2 15 2 果汁100% ピーチ 200g 瓶 210
内部結合はWHERE 句を使って次のように記述できます。
SELECT * FROM OrderDetails, Goods WHERE OrderDetails.Goods_Code =Goods.Goods_Code;
実習問題は、WHERE 句を用いた内部結合のみを扱います。
左外部結合
左側のテーブルを基準に結合します。右側に一致する値がなくても、左側のテーブルの データは全て取り出されます。
SELECT * FROM OrderDetails LEFT JOIN Goods ON OrderDetails.Goods_Code = Goods.Goods_Code; 取り出す列の名前(*は全ての列) 結合するテーブルの 名前 一致の条件となる列の名前。「=」で結びます。列名 が同じ場合、テーブル名と列名を指定します。 半角スペース 取 り 出 す 列の名前 基準となるテーブル の名前 一致の条件となる列の名前。 「=」で結びます。 結合するテーブルの 名前 内部結合テーブル OrderDetails テーブル Goods テーブル
61
No
OrderDetails.
Goods_Code Quantity
Goods.
Goods_Code Goods_Name Unit Price
128503 1 18 1 果汁100% オレンジ 200g 瓶 200 128503 2 15 2 果汁100% ピーチ 200g 瓶 210 128503 10 32 右外部結合 右側のテーブルを基準に結合します。左側に一致する値がなくても、右側のテーブルの データは全て取り出されます。
SELECT * FROM OrderDetails RIGHT JOIN Goods ON OrderDetails.Goods_Code = Goods.Goods_Code;
No
OrderDetails.
Goods_Code Quantity
Goods.
Goods_Code Goods_Name Unit Price
128503 1 18 1 果汁100% オレンジ 200g 瓶 200 128503 2 15 2 果汁100% ピーチ 200g 瓶 210
3 コーヒーミルク 195g 缶 190
●3つのテーブルの内部結合
4つのテーブル(Goods, Orders, Customers, OrderDetails)を内部結合して、No が 128503 の No, Order_Date, Customer_Name, Goods_Name, Unit, Price, Quantity を表示 するSQL は次のように記述します。
SELECT Orders.No, Order_Date, Customer_Name, Goods_Name, Unit, Price, Quantity FROM Goods, Orders, Customers, OrderDetails WHERE Orders.No= OrderDetails.No AND Orders.Customer_Code=Customers.Customer_Code AND OrderDetails.Goods_Code=Goods.Goods_Code AND No=128503;
No Order_Date Customer_Name Goods_Name Unit Price Quantity
128503 2011/9/16 よろず商店 果汁100% オレンジ 200g 瓶 200 18 128503 2011/9/16 よろず商店 果汁100% ピーチ 200g 瓶 210 15 但し、Goods テーブルには Goods_Code が 1,2,3 のみ登録されてる場合である。 取 り 出 す 列の名前 結合するテーブルの 名前 一致の条件となる列の名前。 「=」で結びます。 基準となるテーブル の名前
62 8.9 JetSQL データ型 Jet データベースエンジン(Access のデータベースエンジン)で定義されている SQL のデ ータ型とその別名は次のとおりです。SQL 文でテーブルを作成したり、フィールドを追加 する時には、この型で宣言します。 データ型 内容 別名 BINARY バイナリ型 VARBINARY
BIT ビット型 BOOLEAN, LOGICAL, LOGICAL1, YESNO
BYTE 数値型、バイト型 INTEGER1
COUNTER カウンタ型 AUTOINCREMENT
CURRENCY 通貨型(固定小数点数型) MONEY
DATETIME 日付/時刻型 DATE, TIME, TIMESTAMP SINGLE 数値型、単精度浮動小数点型 FLOAT4, IEEESINGLE, REAL DOUBLE 数値型、倍精度浮動小数点型 FLOAT4, FLOAT8, IEEEDOUBLE,
NUMBER, NUMERIC
SHORT 数値型、整数型 INTEGER2, SMALLINT
LONG 数値型、長整数型 INT, INTEGER, INTEGER4 LONGBINARY ロングバイナリ型、OLE オブ
ジェクト型
GENERAL, OLEOBJECT
LONGTEXT メモ型 LONGCHAR, MEMO, NOTE
TEXT テキスト型 ALPHANUMERIC, CHAR,
84
11. システムの設計実習(JAVA/Access)
11.1 データベースの接続と SQL 言語package プロジェクト名; import java.sql.*;
public class JDBCApplicationDemo { public static void main(String[] args) { try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); ←JDBC ドライバ読込み String url = "jdbc:odbc:TEST"; ←データベースの URL、TEST はデータソース名 String user = "";
String password = ""; データベースと接続
Connection conn=DriverManager.getConnection(url, user, password); Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT Goods_Name FROM Goods"); while (rs.next()) { ①商品名読出し System.out.println(rs.getString("Goods_Name")); ←②商品名表示 } rs.close(); stmt.close(); conn.close(); ←データベースとの接続解除 } catch(SQLException e) { e.printStackTrace(); ← 例外のエラー表示 } catch(Exception e) { e.printStackTrace(); } } } 問1 上記プログラムは、問題 受注伝票で作成した Goods テーブルから、商品名 Goods_Name を読出し、商品名 Goods_Name を表示するプログラムです。
Goods テーブルから、Goods_Name に加えて、Unit 及び Price を読出して表示するプログ ラムを作成しなさい。 の部分を追加修正して作成します。
問2 Goods_Code が 20 の商品の Price を 120 に変更します。さらに変更した内容を表示 して確認するには、 の部分をUPDATE 文と SELECT 文を用いて、次のように 記述します。
85
int result = stmt.executeUpdate(“UPDATE Goods SET Price = 120 WHERE Goods_Code = 20”);
System.out.println(result + “行更新しました”);
ResultSet rs = stmt.executeQuery(“SELECT Goods_Name, Price FROM Goods WHERE Goods_Code =20”);
while(rs.next()){
System.out.println(rs.getString(“Goods_Name”)); System.out.println(rs.getString(“Price”));
}
Goods_Code が 21 の商品の Price を 190 に変更しなさい。又、SELECT 文を用いて、変 更した内容(Goods_Name と Price)を表示して確認しなさい。
問3 Goods_Code が 23 の商品を、下表の Goods テーブルに追加するには、 の 部分にINSERT 文を用いて、次のように記述します。
int result = stmt.executeUpdate( “ INSERT INTO Goods(Goods_Code, Goods_Name, Unit, Price) Values(23, ‘生うどん’, ‘50g 袋’, 150)”); System.out.println(result + “行追加しました”);
Goods テーブル
Goods_Code Goods_Name Unit Price
23 生うどん 50g 袋 150
24 ビール 350ml 缶 260
表に示す Goods_Code が 24 の商品を Goods テーブルに追加しなさい。
問 4 INSERT 文 を用 いて 、 次に 示すデー タ を Orders テーブ ル の No, Order_Date, Customer_Code に、OrderDetails テーブルの No, Goods_Code, Quantity に追加しなさ い。 Orders テーブル No Order_Date Customer_Code 128509 2011/9/20 17 OrderDetails テーブル No Goods_Code Quantity 128509 23 25 128509 24 50
OrderDetails テーブルの No が 128509、Goods_Code が 23 の Quantity を 80 に変更し なさい。次に変更した内容を表示して確認しなさい。
問 5 Goods 、 Orders 、 Customers 、 OrderDetails の 4 つ の テ ー ブ ル を 結 合 し て 、 No, Order_Date, Customer_Name, Goods_Name, Unit, Price, Quantity を表示しなさい。
86 11.2 画面(GUI)を用いたデータの入力と出力 画面から商品コードを入力してエンターキーを押すと、”Goods”テーブルから商品名、 単位、価格を読み出し表示するプログラムを作成する。 画面の設定 JDBC-ODBC ドライバの登録、データベースとの接続 public void init(){
try{ Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); //JDBC-ODBC ドライバーの登録 }catch(ClassNotFoundException e){ e.printStackTrace(); } }
String url = “jdbc:odbc:TEST”; //データベースへの URL TEST はデータソース名 String user = “”; //ユーザ ID String password = “”; //ユーザのパスワード 商品コード 商品名 単位 単価 問合 jButton1 更新 jButton2 挿入 jButton3 jTextField1 jTextField2 jTextField3 jTextField4 3
87 (1)問合
商品コードを入力して問合ボタンを押すと、商品名、単位、単価を表示する。
private void jButton1actionPerformed(ActionEvent e) { //問合せボタンを押した時 try{ //接続始を開始する
Connection conn=DriverManager.getConnection(url,user,password);
PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM Goods WHERE Goods_Code = ?"); pstmt.clearParameters(); jTextField1.setEditable(true);//商品コードフィールドを編集可能にする pstmt.setString(1,jTextField1.getText());//商品コードを取得し、?へ設定する ResultSet rs = pstmt.executeQuery();//問合を実行する while(rs.next()){
String name = rs.getString("Goods_Name");//商品名を呼出す String unit = rs.getString("Unit");//単位
String price = rs.getString("Price");//価格
jTextField2.setText(name);//商品名フィールドに商品名を設定する jTextField3.setText(unit);//単位フィールドに単位 jTextField4.setText(price);//価格フィールドに価格 } conn.commit(); rs.close(); pstmt.close(); conn.close(); }
catch(Exception ex){ ex.printStackTrace(); }
}
88 (2)更新
商品コードと更新する価格を入力し、更新ボタンを押し、価格を更新する。
private void jButton2actionPerformed(ActionEvent e) { //更新ボタンを押したとき try{ //接続を開始する
Connection conn=DriverManager.getConnection(url,user,password); PreparedStatement pstmt = conn.prepareStatement("UPDATE Goods
SET Price = ? WHERE Goods_Code = ? "); pstmt.clearParameters();
pstmt.setString(1,jTextField4.getText());//価格を取得し、Price の?へ設定する
pstmt.setString(2,jTextField1.getText());//商品コードを取得し、Goods_Code の?へ設定する int updateCount = pstmt.executeUpdate();//更新を実行する
if(updateCount > 0){ System.out.println(updateCount + "行更新されました"); }else{ System.out.println("更新された行はありません"); } conn.commit(); pstmt.close(); conn.close(); }
catch(Exception ex){ ex.printStackTrace(); }
}
89 (3)挿入
商品コード、商品名、単位、価格に値を設定し、挿入ボタンを押して商品レコードを挿入する。 private void jButton3actionPerformed(ActionEvent e) { //挿入ボタンを押したとき
try{ //接続始を開始する
Connection conn=DriverManager.getConnection(url,user,password); PreparedStatement pstmt = conn.prepareStatement("INSERT INTO
Goods(Goods_Code, Goods_Name, Unit, Price) VALUES(?, ?,?,?)"); pstmt.clearParameters();
pstmt.setString(1,jTextField1.getText());//商品コードを Goods_Code の?へ設定する pstmt.setString(2,jTextField2.getText());//商品名を Goods_Name の?へ設定する pstmt.setString(3,jTextField3.getText());//単位を Unit の?へ設定する
pstmt.setString(4,jTextField4.getText());//価格を Price の? へ設定する int updateCount = pstmt.executeUpdate();//挿入を実行する
if(updateCount > 0){ System.out.println(updateCount + "行が挿入されました"); }else{ System.out.println("挿入された行はありません"); } conn.commit(); pstmt.close(); conn.close(); }
catch(Exception ex){ ex.printStackTrace(); }
}
問3 (3)挿入に関して、次の商品を追加しなさい。
Goods_Code Goods_Name Unit Price 25 チョコブロック 50g 箱 120 問4 問2、問3の処理結果を表示して確認しなさい。
問5 同様に Orders テーブル、Customers テーブル及び OrderDetails テーブルについて、 (1)問合せ、(2)更新、(3)挿入を行うプログラムを作成しなさい。
問 6 4 つ の テ ー ブ ル (Goods テ ー ブ ル 、 Orders テ ー ブ ル 、 Customers テ ー ブ ル 、 OrderDetails テーブル)を結合します。「売上日の範囲」を入力すると、その期間の「伝 票番号」、「顧客名」、「商品名」、「単位」、「単価」、「数量」を表示するプログラムを作 成しなさい。