学校の前にデータベースが事務のコンセプトに多くの注意を払っていない場合は通常の練習は基本的に役に立たないことですが、これは非常に便利な概念であるとき、学ぶべき価値があります。この記事は主にトランザクションの概念について非常に基本的な知識に関係していると、JDBCとの取引を管理するために、いくつかの高度な概念は、取引に関与していません。
まず、データベースの「取引」の概要
==(トランザクション)==データベーストランザクションがアクセスを参照して各種データの可能な動作シーケンスデータベースを操作し、これらの操作のいずれか、すべての実行またはすべてを実行していない、それが仕事の不可分単位です。すべてのデータベース操作はトランザクションと開始トランザクションの端部との間に取引が実行します。
簡単に言えば、トランザクションはオペレーションの集合の集合として理解することができます、そうでない場合は、「同期」の間にいくつかの操作については、それゆえ、これらの操作は、トランザクション管理はこれの管理を統一するために、トランザクションを形成し、重大なエラーを持参します操作。支払い、配達:買い物をする際、例えば、二つの基本的な操作があります。配信が支払われていないか、配信に支払われていない場合は、エラーの原因となります。ペイとは操作が同期の生成を避けることができるように、(特定の配信を支払った後、納品後、前の規定に注意を払って)トランザクション処理からなる二つの操作に配信する準備ができていますエラー。
第二に、データベースの「トランザクション」機能
-
アトミック
データベーストランザクションの全体的な動作は、不可分のいずれかで終了しているか、全く行われていません -
整合
トランザクション複数の並列実行、実行結果は、シリアル実行の特定の順序と一致しなければなりません -
単離
、彼らは同じシリアルを実行すると、トランザクションの同時実行がお互いに影響を与え、そしてデータベースへの影響はありません -
永続
トランザクションがコミットされると、データベースへの更新は永続的で、任意のトランザクションまたはシステム障害は、データの損失が発生することはありません
第三に、一般的なデータベースの同時実行例外
-
ロストは変更
これらの変更が欠落しているように見える原因のように、提出されたデータを変更するトランザクションのカバー他のトランザクションを -
ダーティー読み取り
一つのトランザクションは、他の事項がまだ提出されていないデータを読み込み -
非反復可能読み取り
、同じデータの不整合にトランザクションの結果を読み込みます -
マジック読書
他のトランザクションの動作は、2回の測定値の前後で一貫性のない結果につながるため、トランザクションは、範囲内のデータを読み込みます。魔法の読み取りとの差は、ラインのその非反復リード、非反復リードデータで定義されており、ファントムは、不確実性のためにデータの複数の行である読み出します。
一方で、それ自体が、エラーが発生したときにエラーがトランザクションで発生する前に、他の手が容易な状態に戻すことができる上に、誤差を低減することであるデータベーストランザクションがあります。
トランザクションによって、上記の例外を回避するために、分離レベル、分離レベルに関連して扱うのブログの首長を参照するには、トランザクションの分離レベル4、一時的にここで議論します。
基本操作のIVデータベース「業務」
- オープン
- 提出します
- ロールバック
データベースエラーが発生した場合、エラーが発生する前の状態にデータベースを復元する必要があります。
JDBCの内側に、使用中接続トランザクションを管理するためのオブジェクト:
-
setAutoCommit(偽)は、
トランザクションに表示します -
コミット()
トランザクションの終了によって提出 -
ロールバック()
トランザクションの終了をロールバックします
コードのフォーマット
try{
con.setAutoCommit(false);//开启事务
......
con.commit();//try的最后提交事务
} catch() {
con.rollback();//回滚事务
}
2019年12月22日