物事処理、DAO

2642 ワード

取引


JDBCでは、トランザクションは自動的にコミットされます.DMLを実行するたびにトランザクションがコミットされます.
トランザクションのプロパティ:
  • 原子性(Atomicity):トランザクションは原子作業ユニットでなければなりません.データの変更については、すべて実行するか、すべて実行しないかのいずれかです.
  • コンシステンシ(Consistency):トランザクションの完了時に、すべてのデータをコンシステンシ状態に保つ必要があります.
  • 隔離性(Isolation):同時事務所による修正は、他の同時事務所による修正隔離
  • としなければならない.
  • 持続性(Durability):システムへの影響が永続的な
  • トランザクション
    トランザクションはデータベースの概念で、JDBCはトランザクションをサポートして、本質はやはりデータベースの中で実現します

    トランザクション関連API


    関連API:
  • Connection.getAutoCommit():現在のトランザクションのコミット方法を取得します.デフォルトはtrue
  • です.
  • Connection.settAutoCommit():トランザクションのコミット属性を設定します.パラメータはtrueです.自動コミット:false:
  • は自動コミットされません.
  • Connection.commit():トランザクションのコミット
  • Connection.rollback()ロールバックトランザクション
  • バッチ処理


    一括処理によりIOを削減し、効率を向上

    一括更新API

  • addBatch(String sql)Statementクラスのメソッドでは、複数のsql文をStatementオブジェクトのSQL文リストに
  • を追加できます.
  • addBatch()PreparedStatementクラスのメソッドでは、複数のプリコンパイルされたsql文をPreparedStatementオブジェクトのSQL文リストに
  • 追加できます.
  • executeBatch()は、StatementオブジェクトまたはPreparedStatementオブジェクト文リスト内のすべてのSQL文をデータベースインタッチ
  • に送信する.
  • clearBatch()現在のSQL文リスト
  • をクリア

    OutOfMemoryの防止


    PreparedStatementオブジェクトのSQLリストに処理対象のSQL文が多すぎると、OutOfMemoryエラーが発生し、SQL文リストがタイムリーに処理される可能性があります.

    自動プライマリ・キーに戻る


    PreparedStatementのgetGeneratedKeysメソッドを使用して、SQLのインタラクションが1回であれば、自己増加型のデータを取得します.
    PreparedStatement preparedStatement = connection.prepareStatement(sql, new String[]{"deptno"});
    preparedStatement.executeUpdate();
    resultSet.next()
    int id = resultSet.getInt(1);
    

    ページング


    ページングは、データベースのページングを直接使用する2つのポリシーに分けることができます.もう1つは、キャッシュされたページング・テクノロジーに基づいて、データを一度にすべて取り出し、プログラム内でページングすることができます.

    DAO


    DAO(Data Access Object)データアクセスオブジェクト
    データベースとビジネス・レイヤの間に構築され、データベースへのアクセスをすべてカプセル化します.データベースのデータをjavaのオブジェクトにマッピングする
    目的:データアクセスロジックとビジネスロジックが分離され、操作オブジェクトがデータベースデータの変更を完了できるようにします.
    DAOには、通常、次のものが含まれます.
  • DAO工場クラス
  • DAOインタフェース
  • DAOインタフェースを実装する特定のクラス
  • データ転送オブジェクト(実装オブジェクトまたは値オブジェクト)
  • エンティティオブジェクト


    DAOレイヤは、データベース内のテーブルへのアクセスを定義する必要があります.
    エンティティ・クラスはjavaのクラスで、データベース内のテーブルを記述します.各インスタンスはデータベース内のデータを表します.エンティティ・クラスの用途は、オブジェクトとデータ・テーブル間のマッピングを記述することです.
  • 表とクラス対応
  • 表のフィールドとクラスのプロパティは
  • に対応します.
  • レコードとオブジェクト対応
  • 異常処理メカニズム


    多層システムの異常処理原則:
  • 誰が投げた異常、誰が捕まえて処理して、異常が投げた者だけがあるため、どのように異常を捕まえて処理するかを知っています;
  • は、現在のレイヤで放出された異常をできるだけ捉え、上位インタフェースに放出しないようにする.
  • は、各層の異常クラスをできるだけ各層にカプセル化し、異常に放出された層を正確に位置決めすることができる.
  • 異常が処理を捕捉できない場合、上位インタフェースにJVMに投げ出すまで投げ出す.
  • 異常をJVM
  • に投げつけることはできるだけ避けるべきである.