10月25日(火)1、2コマ目
今日の予習
C#+OracleDB
今までもC#からOracleDBにアクセスするプログラムを作ってきましたが、エラーが発生した時点で例外を呼び出し元にスローしていました。
エラー発生時の例外スローをコントロールするプログラムに改造しまします。
古典的な書き方
try{ }catch{ }をつかう書き方。Javaと同じ。
usingステートメントを使う
Javaのtry with resourcesと同じようなusingステートメントを使う書き方。
コミット・ロールバック
Javaと異なるのが、Transactionオブジェクトがあるところ。このTransactionオブジェクトでコミット、ロールバックを行う。
今日、やったこと
[課題]Java+トランザクション
今日のホワイトボード
[課題]Java+トランザクション
StockDAOクラス
サーブレット
JSP
C#+OracleDB
ソースコードは上の「今日の予習」をご参考に。
メソッドのオーバーライド
Javaの場合は特になにも指定しなくてもメソッドのオーバーライドができたが、C#では明示的にoverrideを指定する必要がある。
![]() |
| 図 オーバーライド |
Javaの@Overrideアノテーションは指定しなくてもOK。指定した場合は、オーバーライドするつもりがスペルミスでオーバーライドしていない(引数が違う、メソッド名が違う)ようなときにコンパイル時に警告してくれます。
Transactionオブジェクト
C#ではJavaにはないTransactionオブジェクトがあり、これを使ってトランザクションコントロールをします。
Transactionオブジェクトは接続済みConnectionオブジェクトのBeginTransaction()メソッドで取得できます。
TransactionオブジェクトはCommandオブジェクトのTransactionプロパティにセットします。同じTransactionオブジェクトがセットされたCommandオブジェクトは同じトランザクションのメンバになります。
コミットはTransactionオブジェクトのCommit()メソッド実行、ロールバックはRollback()実行です。
![]() |
| 図 トランザクション |
次回は
C#+トランザクションの練習問題です。

