アッと驚く達人の技
Java実践技大全

 これまでのプログラミングでは、プラットフォームごとにプログラムを書き換えるという非常に不効率な作業が当たり前でした。しかし、JAVAはWORA(一度記述すればどこでも使える)の理念で作られた画期的なプログラム言語です。
 本書では現役で活躍するプログラマが、仕事の現場で役立つJAVA全般に渡ったさまざまな「実例」を厳選して掲載しています。付録のCD-ROMとともに、学習しやすく構成してあります。実践技&上級技がここにあります。

cover

 

第1章 変数と定数の活用

●変数の概要について・・・・・・20

●数値の大小を比較して結果に応じた文章を表示する・・・・・・21

■数値の大小を比較するには等価比較演算子を使え!

■オペランドの型が異なる場合は「二項数値昇格」の規則を適用せよ!

■浮動小数点の比較には「Math.min()」「Math.max()」メソッドを使え!

●数値の等価を比較して結果に応じた文章を表示する・・・・・・23

■等価演算子は変数の型によって意味が異なることに注意せよ!

●加法演算子で足し算・引き算を行う・・・・・・24

■加法演算を行う「+」演算子はオペランドの値で数値演算と文字列結合を使い分けよ!

●乗除演算子で掛け算・割り算を行う・・・・・・25

■乗除演算子を利用する際には演算可能なオペランドを把握せよ!

●増分演算子・減分演算子で数値を増減させる・・・・・・26

■増分演算子・減分演算子は記述場所によって演算結果が異なることに注意せよ!

●シフト演算子で数値をビット単位でシフトする・・・・・・27

■シフト演算子を利用する際には処理が実行される順序に注意せよ!

●ビット単位の論理積・論理和・排他的論理和を計算する・・・・・・28

■整数値ビット単位演算子の返り値は用いた演算子によって異なることを把握せよ!

●論理型数の論理積・論理和・排他的論理和を計算する・・・・・・29

■論理型論理演算子の左右のオペランドは両方とも論理型であることを認識せよ!

●整数と論理型数の補数を計算する・・・・・・30

■補数演算を行う際には演算可能な条件に注意して式を定義せよ!

■計算対象の変数の型が合わない場合は変数に値を格納したまま型の種類を変更せよ!

●「if」文を使わずに条件演算子で式を評価する・・・・・・32

■条件演算子による評価式はオペランドを3つ用いて構成せよ!

■複数の条件演算子が出てきた場合は右から順に評価せよ!

●キャスト演算子で型変換を行う・・・・・・33

■変数の型を指定して演算処理を行う場合はキャスト演算子を使え!

●文字列連結演算子で文字列を結合する・・・・・・34

■文字列連結演算子は常に左結合で利用せよ!

●クラス内の変数に直接アクセスする・・・・・・35

■クラス変数を定義するにはクラス宣言時に「static」修飾子を利用せよ!

●インスタンスを通じてクラス内変数にアクセスする・・・・・・36

■インスタンス変数はインスタンスを通じてアクセスできることを理解せよ!

●コンストラクタでオブジェクト生成時の処理を行う・・・・・・37

■クラスと同じ名前を付けてメソッドをコンストラクタと解釈させよ!

●メソッドの仮引数に式を受け渡す・・・・・・38

■メソッドの仮引数には式を当てはめてメソッド呼び出しを簡潔にせよ!

●「final」宣言による定数の定義を行う・・・・・・39

■フィールドの定数宣言や変更されたくないメソッドには「final」宣言を利用せよ!

●「static」宣言によってメソッドを直接使う・・・・・・40

■フィールド変数とメソッドは「static」宣言で個別に利用できるようにせよ!

●「public」宣言で他のクラスからアクセス可能な変数にする・・・・・・41

■他のクラスで利用可能な変数を指定するには「public」宣言を記述せよ!

■「public」宣言された変数を使うには「import」宣言を記述せよ!

■「public」「protected」「private」を使い分けてアクセス制御せよ!

●浮動小数点演算を行う・・・・・・43

■浮動小数点演算は精密な計算を必要とする際に利用せよ!

■浮動小数点演算は「float型」「double型」で演算を行え!

●2つ以上の戻り値を返すクラスを定義する・・・・・・44

■戻り値に多値を返すには内部クラスを定義して戻り値を格納せよ!

■内部クラスを定義するためのクラスは別ファイルに記述せよ!

●オブジェクト変数をフラグとして利用する・・・・・・46

■フラグを利用するにはオブジェクト変数で設定・参照メソッドを定義せよ!

■クラス内のフラグを表すフィールド変数名はアンダーバーで始めよ!

■フラグの状態を返すメソッド名は「is」で始めよ!

●無名クラスを定義して使う・・・・・・48

■無名クラスは一度きりの使い捨てのクラスの宣言で使え!

●局所変数による名前の隠ぺいを行う・・・・・・49

■メソッドに適用する変数の名前はフィールド変数と同じ名前にせよ!

■隠ぺいされたフィールド変数にアクセスするには「this」キーワードを利用せよ!

●絶対値を取得する・・・・・・51

●日時を取得する・・・・・・52

■日時を日本語書式にするには「DateFormat」クラスを利用せよ!

第2章 構文の活用

●表示させる文字列を条件によって切り替える・・・・・・56

■整数値の条件判断には等価演算子を使った論理式を指定せよ!

●メソッドの戻り値によって表示文字列を切り替える・・・・・・57

■複雑なロジックを簡単に評価するには「if」文の評価対象に論理型を返すメソッドを記述せよ!

●条件式の値に応じて複数の条件分岐を設定する・・・・・・58

■「switch〜case」文には「break」文と「default」文を記述せよ!

●初期宣言と終了処理を行う繰り返し処理を実行する・・・・・・59

■「for」文の()内での終了処理は「,」(カンマ)で区切ってまとめて記述せよ!

●一定の条件を満たすまで繰り返し処理を行う・・・・・・60

■「while」文の論理式には論理値を返すメソッドを使え!

●整数を16進表示の文字列に変換する・・・・・・61

■「do〜while」文は処理結果に応じてループを脱出する判断に使え!

●画面に「*」で二等辺三角形を表示する・・・・・・62

■二等辺三角形は「for」文を入れ子にして格子状のマス目を表現せよ!

●常に成立する論理式で無限ループを実現する・・・・・・63

■「while」文で作成する無限ループは「while(true)」で実現せよ!

●設定値が不要な構文で無限ループを実現する・・・・・・64

■「for」文で作る無限ループは初期処理・条件判断・終了処理をすべて省略せよ!

●初期表示・終了処理のある無限ループを実現する・・・・・・65

■初期処理や終了処理が必要な無限ループは「for」文の条件判断のみを省略せよ!

●プログラムの流れを中止したり戻したりする処理を記述する・・・・・・66

■ループの先頭に戻るには「continue」文・抜けるには「break」文を使え!

●メソッドを利用した処理をシンプルに記述する・・・・・・67

■「return」文には式やメソッドを直接指定せよ!

●意図した任意の条件で強制的にエラーを発生させる・・・・・・68

■例外処理のオブジェクトの指定には「HandringException」を利用せよ!

●排他的に処理を実行する・・・・・・69

■同時に実行できない処理は「synchronized」文で処理を行う順番を制御せよ!

●プログラムの実行時に必ず行う処理を設定する・・・・・・70

■例外処理より強力な「finally」文に資源の解放処理を記述せよ!

■資源の解放をしないとメモリを食いつぶすので注意せよ!

●日本語名の変数でプログラムを読みやすくする・・・・・・72

■クラス・メソッド・フィールド・変数には日本語名が使えると心得よ!

●オブジェクトそのものの比較を行う・・・・・・73

■オブジェクトそのものを比較するには「==」(関係演算子)を使え!

●オブジェクトの値の比較を行う・・・・・・74

■「equals()」メソッドでは仮引数の値を比較対象にせよ!

●オブジェクトの複写(シャローコピー)を行う・・・・・・75

■オブジェクトのシャローコピーは「clone()」メソッドで簡単に実行せよ!

■「clone()」メソッドを利用するには記述時の決まりを把握せよ!

●オブジェクトの複製(ディープコピー)を行う・・・・・・77

■ディープコピーは新しいオブジェクトに目的の値を代入して実現せよ!

■ディープコピーの生成結果は別の値の代入結果を再表示させて確認せよ!

■シャローコピーとディープコピーは生成結果の状態を把握して使い分けよ!

●オブジェクトに対して値を設定する・・・・・・79

●プリミティブ型の代入変換を行う・・・・・・80

■プリミティブ型の代入変換は拡大変換の場合にのみ用いよ!

●テキストファイルに書き出した情報を表示する・・・・・・81

■テキストファイルへの書き出しは「Serializable」を利用せよ!

第3章 文字列の操作

●コンストラクタを使って文字列を表示する・・・・・・84

■文字列オブジェクトの生成には「new」演算子を利用せよ!

●文字列クラスに文字をダイレクトに定義する・・・・・・85

■単純処理の文字列はコンストラクタを介さずに生成せよ!

●文字列の長さを取得する・・・・・・86

■「length()」メソッドは半角・全角を問わずに利用せよ!

■変数を介さずに文字数を数えるには「””」で目的の文字列を定義せよ!

●文字列を連結する・・・・・・87

■文字列として表示する数は「+」演算子で文字列と連結せよ!

●メソッドを使って文字列を連結する・・・・・・88

■メソッドと演算子の併用で3つ以上の文字列を連結せよ!

■例外処理が必要な場合は「+」演算子ではなく「concat()」メソッドを使え!

●目的の文字が何番目にあるかを検索する・・・・・・89

■「indexOf()」メソッドは先頭を0番目として返すことに注意せよ!

●文字列中の文字を置換する・・・・・・90

■「replace()」メソッドでは文字列を1文字ずつ置換せよ!

●文章中の目的の箇所を文字列単位で置換する・・・・・・91

■「replace()」メソッドによる置換は「StringBuffer」オブジェクトに実行せよ!

●文字列の内容を比較する・・・・・・92

■「equals()」メソッドは条件式と組み合わせて利用せよ!

●文章中の一部の文字列を比較する・・・・・・93

■比較対象となる文字列は先頭を「0番目」としてカウントせよ!

●文字列の並び順を50音順で比較する・・・・・・94

■戻り値のプラスマイナスで文字列の並び順を判断せよ!

●文字列の後ろに計算結果を追加する・・・・・・95

■数式の演算結果は文字列に変換してから追加せよ!

●指定した位置に文字列を挿入する・・・・・・96

■後に追加する文字列の挿入位置は先に追加した文字列の文字数を加算して指定せよ!

●文章中から任意の文字列を削除する・・・・・・97

■「delete()」メソッドで削除される文字列の範囲に注意せよ!

●文字列の接尾辞を判定する・・・・・・98

■「endsWith()」メソッドでは任意の文字列を仮引数に指定せよ!

●変数の値を文字列に加算する・・・・・・99

■文字列以外の型の変数は「+」演算子を使って末尾に連結せよ!

第4章 配列の操作

●配列の宣言と領域確保を行う・・・・・・102

■配列を利用するには配列の宣言と同時に領域を確保せよ!

●配列を初期化する・・・・・・103

■配列の初期値は配列の型に合った値を配列初期化子内にカンマ区切りで記述せよ!

●配列へのデータ格納を行う・・・・・・104

■配列へのデータの格納には「for」文のループ処理を利用せよ!

●型と大きさを指定して配列を生成する・・・・・・105

■「newInstance()」メソッドの戻り値はキャスト演算子で指定の配列型に変換せよ!

●クラス内配列のメンバーを設定・参照する・・・・・・106

■フィールド宣言された配列メンバーのデータ設定は「static」ブロック内で行え!

●クラス型配列の生成とメソッドの利用を行う・・・・・・107

■クラス型配列に格納するメンバーには生成されるオブジェクトを格納せよ!

●サイズの分からない配列を参照する・・・・・・108

■配列のサイズを取得するには配列の参照に対して「length」プロパティを使用せよ!

●配列を列挙型に変えて参照する・・・・・・109

■配列を列挙型に変えるには配列メンバーを「Vector」オブジェクトに格納せよ!

●多次元配列を定義する・・・・・・110

■多次元配列を定義するには{}の中に{}でくくった配列のメンバーを記述せよ!

●多次元配列のクローンを作成する・・・・・・111

■多次元配列のクローンの作成には「clone()」メソッドを使え!

●プリミティブ型配列の並べ替えを行う・・・・・・112

■プリミティブ型の配列の並べ替えを行うには「sort()」メソッドを使え!

●2次元配列の中身を表示する・・・・・・113

■2次元配列の表示には二重「for」ループを利用せよ!

●イテレータを使って配列同士を比較する・・・・・・114

●オブジェクト型配列をリストに変換する・・・・・・115

■オブジェクト配列をリストに変換するには「asList()」メソッドを使え!

第5章 例外処理の操作

●数値演算を行ったときに発生する例外処理を行う・・・・・・118

■数値演算で発生する例外処理には「ArithmeticException」クラスを使え!

●例外エラー箇所のトレースを表示する・・・・・・119

■例外エラー箇所のトレース表示には「printStackTrace()」メソッドを使え!

●「try〜catch」文で複数の例外を処理する・・・・・・120

■複数の例外処理はエラー症状の軽い処理から重い処理へ順に記述せよ!

●例外が発生したかどうかに関わらず処理を行うように設定する・・・・・・121

●負の配列を作成したときに発生する例外処理を行う・・・・・・122

■負の配列作成時の例外処理は「NegativeArraySizeException」クラスで行え!

●配列の記憶で不正な処理を行ったときの例外処理を行う・・・・・・123

■配列記憶例外処理を行うには「ArrayStoreException」クラスを使え!

●不正な仮引数により発生する例外処理を行う・・・・・・124

■不正な仮引数は「IllegalArgumentException」クラスで処理せよ!

■「IllegalArgumentException」クラスの例外はこれだ!

■正規表現エラーも「IllegalArgumentException」でハンドリングできる!

●キャスト変換をしたときに発生する例外処理を行う・・・・・・126

■クラスのキャスト変換時の例外処理は「ClassCastException」を使え!

●null参照をしたときに発生する例外処理を行う・・・・・・127

■null参照例外処理は「NullPointerException」を使って処理せよ!

●値がインデックス範囲外のとき発生する例外処理を行う・・・・・・128

■宣言された要素数を超えて値が入力された場合の処理には「IndexOutOfBoundsException」を使え!

●例外処理の結果表示を省略する・・・・・・129

■エラー処理の結果表示を省略するには「throws」キーワードを利用せよ!

●誤った表記のURLを入力したときの例外処理を行う・・・・・・130

■誤ったURLの例外を処理するには「MalformedURLException」クラスを使え!

●メソッドが存在しない場合の例外処理を行う・・・・・・131

第6章 AWTの活用

●フレームを作成する・・・・・・134

■AWTとは

■生成したフレームを表示するには「show」メソッドを利用せよ!

●ダイアログを作成する・・・・・・136

■用途によって2種類のダイアログを使い分けよ!

●ウィンドウを作成する・・・・・・138

■小さなウィンドウを作りたいときは「Window」クラスを使用せよ!

■ イベント処理をしやすくするにはフレームやウィンドウは新しいクラスを作成せよ!

●ボタンを作成する・・・・・・141

■作成したボタンは「add」メソッドで追加せよ!

●ラベルを作成する・・・・・・143

■行揃えの位置を設定するには行揃えの定数を指定せよ!

●チェックボックスを作成する・・・・・・145

■変更されたことを知る必要があるかどうかを場合分けせよ!

●ラジオボタンを作成する・・・・・・148

■選択肢の固まりごとにチェックボックスグループを作成せよ!

●リストを作成する・・・・・・151

■リストで選択されている項目の取り方を考えよ!

●テキストフィールドを作成する・・・・・・154

■入力するデータの内容に合わせてテキストフィールドの長さを決定せよ!

■ユーザーの誤入力を未然に防止するには入力できる値を制限せよ!

●テキストエリアを作成する・・・・・・156

■スクロールバーを表示するには「scrollbars」引数を設定せよ!

●スクロールバーを作成する・・・・・・158

■現在の値は数値でも表示せよ!

●メニューバーを作成する・・・・・・161

■メニューを便利に使うにはショートカットキーを設定せよ!

●チェックボックスメニューアイテムを作る・・・・・・163

■メニューにチェックマークを付けるには「itemStateChanged()」メソッドを使え!

●ポップアップメニューを作成する・・・・・・165

■ポップアップメニューは表示する直前にフレームに追加せよ!

●アクションイベント通知を受け取る・・・・・・167

■同じ機能を持つアクションは同じアクションコマンドを設定せよ!

●ウィンドウイベントを受け取る・・・・・・170

■使用したいイベントが少ないときは「WindowAdapter」クラスを拡張せよ!

●マウスイベントを受け取る・・・・・・173

■イベントが少ないときは「MouseAdapter」クラスを拡張せよ!

●キーイベントを受け取る・・・・・・176

■イベントが少ないときは「KeyAdapter」クラスを拡張せよ!

●カーソルを変更する・・・・・・178

■定義済みのカーソルはこれだ!

●レイアウトマネージャを使う・・・・・・180

■レイアウトマネージャを使い分けよ!

●ファイル選択ダイアログを表示する・・・・・・182

■ファイル保存先ダイアログを表示する場合にも「FileDialog」を使用せよ!

●直線・多角形・円形を描く・・・・・・184

■塗りつぶしたいときは「draw〜」の代わりに「fill〜」のメソッドを使用せよ!

●画像ファイルを表示する・・・・・・186

■画像ファイルは「createImage()」でロードせよ!

●文字列をキャンバスに描く・・・・・・188

■使用したいフォントは「Font」クラスで作成せよ!

第7章 Swingの利用

●フレームを作成する・・・・・・192

■Swingとは

■Swingのデメリットを把握してAWTと使い分けよ!

■フレームが閉じられるときの動作は「setDefaultCloseOperation()」で設定せよ!

●ダイアログを作成する・・・・・・194

■コンポーネントを追加する際には階層構造に注意せよ!

■目的によって2種類のダイアログを使い分けよ!

●ラベルを作成する・・・・・・196

■ラベルの配置は「setHorizontalAlignment()」「setVerticalAlignment()」を使用せよ!

●テキストフィールドを作成する・・・・・・198

■ キーを処理するにはアクションコマンドを設定せよ!

●テキストエリアを作成する・・・・・・200

■テキストエリアのスクロールを可能にするにはスクロールペインと組み合わせよ!

●ボタンを作成する・・・・・・202

■ボタンにアイコンを表示するには「ImageIcon」クラスを使用せよ!

●リストを作成する・・・・・・204

■選択項目が変更されたときを知るには「ListSelectionListener」を使用せよ!

●コンボボックスを作成する・・・・・・206

■コンボボックスを編集可能に設定するには「setEditable()」メソッドを使用せよ!

●スライダーを作成する・・・・・・208

■目盛りを表示させるには「setPaintTicks()」メソッドを利用せよ!

■目盛りにラベルを付けるには「setLabels」メソッドを利用せよ!

●プログレスバーを作成する・・・・・・210

■最大値が決められないときは不確定モードを使用せよ!

●ツリーを作成する・・・・・・213

■「DefaultMutableTreeNode」に格納できるのは任意のクラスのオブジェクトと心得よ!

●テーブルを作成する・・・・・・215

■データの表示には「addColumn()」メソッドの呼び出しを行え!

●メニューバーを作成する・・・・・・217

■メニュー項目の処理にはボタンやチェックボックスと同じ処理を実行せよ!

●分割ペインを作成する・・・・・・219

■3つ以上に分けたい場合には「JSplitPane」を複数組み合わせよ!

●タブペインを作成する・・・・・・221

■パネルにコンポーネントを追加する前にレイアウトマネージャを設定せよ!

●チェックボックスを作成する・・・・・・223

■Swingの機能を活用してチェックボックスをアイコン画像で表示せよ!

●ラジオボタンを作成する・・・・・・225

■ラジオボタンを1つだけONにする処理はグループ化の設定で自動化せよ!

●メッセージボックスを表示する・・・・・・227

■メッセージを表示するには「showMessageDialog()」メソッドを使え!

●色選択ダイアログを表示する・・・・・・229

■「JColorChooser.showDialog()」メソッドの戻り値に注意せよ!

●ファイル選択・保存ダイアログを表示する・・・・・・231

第8章 ファイルの操作

●テキストファイルに文字列を書き込む・・・・・・234

■ファイルを書き出す際にはファイルエラーに注意せよ!

■高速にファイルを書き込むには「BufferedWriter」クラスを利用せよ!

■バッファを利用する際にはファイルのフラッシュを必ず行え!

●テキストファイルの末尾に文字列を書き足す・・・・・・237

■コンソールから読み込んだ文字列の末尾に注意せよ!

●テキストファイルを読み込む・・・・・・239

■1024文字を超えるテキストファイルを読み込むにはループを使え!

●高速にテキストファイルを読み込む・・・・・・240

■読み込もうとしたサイズと実際に読み込んだサイズの違いに注意せよ!

●ファイルの情報・属性を調べる・・・・・・241

■時刻を文字列に変換するには「Date」クラスを使用せよ!

●ファイルを削除する・・・・・・243

●ファイルをコピーする・・・・・・244

■ファイルコピーはバイナリファイルとして行え!

●ファイル名・ディレクトリ名を変更する・・・・・・246

●ディレクトリ内のファイル・サブディレクトリを調べる・・・・・・247

■ファイルとサブディレクトリを別々に数えるには「isDirectory()」メソッドを利用せよ!

●サブディレクトリ内をリストアップする・・・・・・249

■階層をたどる深さを制限するには再帰処理のメソッドの引数を使用せよ!

●ディレクトリを作成する・・・・・・251

■親ディレクトリも一緒に作りたいときは「mkdirs」メソッドを使用せよ!

●ディレクトリを削除する・・・・・・253

■ディレクトリを削除する場合はサブディレクトリの有無を考慮せよ!

●サブディレクトリを含むディレクトリを削除する・・・・・・255

■一度削除したファイル・ディレクトリは元に戻せないので注意せよ!

●ディレクトリをコピーする・・・・・・257

■正しくコピーされたかどうかを知るには検証処理を実行せよ!

●サブディレクトリの中身をコピーする・・・・・・261

■目的のディレクトリをサブディレクトリごとコピーする仕組みはこれだ!

■実際のプログラムではエラー処理を記述せよ!

第9章 ネットワークの利用

●サーバーソケットを作成する・・・・・・266

■コンピューター間で通信を行うにはソケットを使用せよ!

●クライアントソケットを作成する・・・・・・268

■同じパソコン内にサーバー・クライアントソケットを作成して作業を効率化せよ!

●クライアントからサーバーにメッセージを送る・・・・・・270

■メッセージの送信は出力用ストリームへの書き込みで実現せよ!

●クライアントから送信されたメッセージを受信する・・・・・・272

■メッセージの受信は入力用ストリームの読み込みで実現せよ!

●クライアントからサーバーへファイルを送信する・・・・・・274

■確実にファイルを送信するにはエラー処理を厳重にせよ!

●クライアントから送信されたファイルを受信する・・・・・・276

■ファイルの送受信の方法はエラーを想定して記述せよ!

●自分自身のIPアドレスとホスト名を表示する・・・・・・278

■自分自身のIPアドレスは「InetAddress」を使って調べよ!

■自分のアドレスを表示せよ!

●URLの情報を解析する・・・・・・280

■URLを解析するにはまずURLの意味を理解せよ!

●URLを符号化・復号化する・・・・・・282

■符号化・復号化するときには文字セットに注意せよ!

●URLからテキストファイルをダウンロードする・・・・・・284

■ダウンロードを行う場合はファイルタイプを判別せよ!

●ヘッダーを取得する・・・・・・286

■よく使うヘッダーフィールドにはアクセスメソッドを使用せよ!

●ネットワークを通じてクラスをロードする・・・・・・288

■ネットワーク経由でクラスを検索するときはローカルにクラスが存在しないか確認せよ!

第10章 スレッドの利用

●同時に複数の処理を実行する・・・・・・292

■並列処理させるプログラムは「run」メソッドに記述せよ!

■スレッドと実行オブジェクトを分離したい場合には「Runnable」を利用せよ!

■並列処理の結果がうまく表示されない場合には繰り返し回数を多くせよ!

●スレッドの実行を一定時間停止する・・・・・・295

●スレッドの処理を途中で止める・・・・・・296

■スレッドの停止はフラグを利用して自分で記述せよ!

■スレッドの停止には「stop」メソッドを使用するな!

●スレッドの状態を調べる・・・・・・298

■スレッドの状態を調べるには「isAlive」メソッドを利用せよ!

■「Thread」クラスに含まれるメソッドはこれだ!

●スレッドの終了を待つ・・・・・・300

■スレッドの終了を待つには「join」メソッドを利用せよ!

■「join」メソッドを利用する場合には例外処理を記述せよ!

●複数のスレッドでの競合を避けるために同期する・・・・・・302

■同時に実行したくないメソッドには「synchronized」宣言を記述せよ!

●通知を待って次の処理に行く・・・・・・304

■待機と通知には「wait」と「notify」メソッドを使え!

第11章 データベースの利用

●Javaでデータベースを利用するための準備を行う・・・・・・308

■すべてのユーザーに対して有効にするには「システムDSN」に設定を行え!

●データベースドライバを読み込んでデータベースに接続する・・・・・・312

■「JDBC-ODBC Bridge」を読み込むには「forName」メソッドを使え!

■ドライバを通じてデータベースに接続するには「getConnection」を使用せよ!

■アカウントとパスワードが必要な場合には「getConnection」に3つの引数を指定せよ!

●データベースを扱うためのSQLの基礎知識・・・・・・314

●結果セットから文字列を取り出す・・・・・・315

■データベースに対して行う処理は「SQL」ステートメントを利用せよ!

■フィールドのデータを文字列として取り出すには「getString」メソッドを使え!

■「next」メソッドで最初のレコードを表示させてから処理を行え!

●結果セットから数値を取り出す・・・・・・318

■数値フィールドからデータを取り出す場合は使用するデータ型に応じたメソッドを使え!

●結果セットから日付時刻を取り出す・・・・・・320

■日付や時刻を扱う際には取得したデータに合わせてメソッドを使い分けよ!

●すべてのレコードを取り出す・・・・・・322

■結果セットを順番に取り出すには「next」と「while」を利用せよ!

■レコード数のカウントは工夫せよ!

■前のレコードに移動できるようにするにはスクロール可能にせよ!

●検索条件を指定してレコードを取り出す・・・・・・324

■条件がそのつど変わる場合は「PreparedStatement」クラスを使え!

■レコードの検索はパラメータをセットしてから実行せよ!

●フィールドの情報を取り出す・・・・・・326

■フィールドやテーブル情報を調べるには「getMetaData」メソッドを利用せよ!

■結果セットのフィールドを順番に調べるには「getColumnCount」メソッドを利用せよ!

■「ResultSet」クラスで情報を調べるクラスはこれだ!

●テーブル結合を行った結果を一覧表示する・・・・・・328

●テーブルにレコードを追加する・・・・・・329

■更新処理を行うには「PreparedStatement」でレコードを追加せよ!

■結果セットからレコードを追加する記述はこれだ!

●レコードを削除する・・・・・・331

■「deleteRow」メソッドを利用したレコードの削除方法はこれだ!

●レコードを修正する・・・・・・332

■レコードの更新には「UPDATE」ステートメントを使え!

■結果セットの更新を行う機能はこれだ!

●トランザクション処理を行う・・・・・・334

■コミットとロールバックを行うには自動コミットモードをOFFにせよ!

コラムページ