シングルトンJNDIデータソースに接続された構成ファイルとデータベースを読み込み

データベースから読み込まシングルトンパターンプロファイル

Singletonパターンは、クラスを参照するインスタンスを1つだけ持って、彼は唯一の人が電話をかけたい場合は、インスタンスを取得するために、このような一般的なアクセス方法を提供する必要があり、それ自体で呼び出すことができます。

1.データベース接続に情報を格納するために使用される.propertiesファイルを作成します。

ダイバー=はcom.mysql.jdbc.Driverの
URL = JDBCます。mysql:// localhostを:?3306 / kgcnews characterEncoding = UTF-8 
のユーザー=ルート
パスワード= 123456

2.コンフィギュレーションファイルCONFIGMANAGERを読むためにクラスを作成します+++

インポート; java.io.FileInputStream
 インポートjava.io.FileNotFoundException、
 インポートにjava.io.IOException;
 インポートjava.io.InputStreamを、
 インポートjava.util.Properties;
 // 遅延モードが設定ファイル読み込み
パブリック クラスCONFIGMANAGER {
     //を1。 CONFIGMANAGERを通じてオブジェクト民営化を作成する
    プライベート 静的CONFIGMANAGER CM<
     //は、プロファイルオブジェクトの作成
    プロパティのプロパティを; 

    // 引数なしで2民営コンストラクタ
    プライベート  CONFIGMANAGER(){
 //         文字列のファイルは=「D:\\ \\ワークスペースプロパティ\\ \\ \\ SRCログインdatabase.properties「;
 //        =新しいFileInputStreamを新しいInputStreamの(ファイルに);
         // 「database.properties」の.propertiesファイル名として 
        文字列ファイル=「database.properties」;
         //は、バイトストリームConfigManager.class.getClassLoader(にファイルを変換)自身が位置を見つけますクラスのクラスローダ 
        のinputStream = CONFIGMANAGERのinputStreamの。クラス.getClassLoader()getResourceAsStream(ファイル); 
        
        
        プロパティ = 新しい新しいプロパティ();
         試み{
             // プロパティは、オブジェクトの書き込み
            は、Properties.load(InputStreamを); 
        } キャッチ(IOExceptionをE){ 
            e.printStackTrace(); 
        } 
    } 
    //前記アクセスポイントは、取得したオブジェクトのグローバルインスタンス提供
    パブリック 静的  CONFIGMANAGER getCmを(){
         // オブジェクト(クラスのインスタンス)が作成されていない場合
        IF(CM&LT == NULL ){
             // によるオブジェクトの同期作成
            同期(CONFIGMANAGER。クラス){ 
                CM&LT = 新しい新しいCONFIGMANAGER(); 
            } 

        } 
        // 返すクラスのインスタンス
        戻り  CM&LTは; 
    } 
    // メソッドのgetProperty(キー)法により値プロファイルを取得
    パブリック文字列getProRes(文字列パラ){
         返す  (Properties.getPropertyをパラ); 
    } 

    公共の 静的 ボイドメイン(文字列[]引数){ 
        System.out.printlnは(。ConfigManager.getCm()getProRes( "ドライバ" ))。
    } 
}

 

飢えモード:

  1.プライベートインスタンスを作成し、直接pirvate CONFIGMANAGERセンチ=新しいCONFIGMANAGER();

  引数なしで2民営コンストラクタプライベートCONFIGMANAGER(){}。

      privtae静的CONFIGMANAGER getConfを得る一般的方法の3例(){戻りCM;}

最初の負荷、高効率モード空腹の男:レイジー・モードと飢えモードの違い。ロードよりも一回怠惰なモードは、メモリリソースを節約します。

JNDIデータソース接続

接続プーリング、データソース、3およびJNDIの使用との関係

ソース:
データソース(データソース)が接続(接続)オブジェクトを作成するには、データベースへの接続に使用しました。
java.sql.DataSourceインターフェースはデータベースへの接続を確立する責任がある
Tomcatが提供され、接続プール内の接続を保存します。


接続プーリング:
接続プールは、プール内の接続オブジェクトを管理するために使用される(Tomcatなど)コンテナによって提供されます。
接続プールと接続オブジェクトは自動的にアイドル状態の接続の回復を割り当てます。
Connectionオブジェクトの接続プールは、データソース(データソース)によって作成されます。
接続プール(接続プール)が接続(接続)オブジェクトを管理するために使用されます。


JNDI(Javaはネーミングとディレクトリインターフェース、のJava ネーミングとディレクトリインターフェース):
プログラム内から使用JNDIデータソース。


統一されたデータ・ソースによって作成された接続オブジェクトは、接続プール管理に配置されます。


3、その後、次のような構成との関係をクリアします。

Spring構成ファイルのapplication.xmlで構成されたC3P0接続プール:

< -配置C3P0连接池:! - >
<豆ID = "データソース"クラス= "com.mchange.v2.c3p0.ComboPooledDataSource">
<プロパティ名= "driverClass"値= "$ {} jdbc.driver" />
<プロパティ名= "jdbcUrlと"値= "$ {jdbc.url}" />
<プロパティ名= "ユーザ"値= "$ {jdbc.user}" />
<プロパティ名= "パスワード"値=」 $ {jdbc.password} "/>
</豆>

データ・ソースのデータ・ソースを使用するための構成と方法:

1、TomcatのCONFの構成/のcontext.xml

< リソース= "はjdbc /ニュース"  
              AUTH = "コンテナ"   タイプ= "javax.sql.DataSourceの"   MAXACTIVE = "100"  
              maxIdle = "30" MAXWAIT = "10000" ユーザー名= "ルート"   パスワード= "ルート"  
              driverClassName = "はcom.mysql.jdbc.Driver"  
              URL = "はjdbc:mysqlの://127.0.0.1:3306 /ニュース" />


名前指定されたリソースの= JNDI名
AUTH =リソース管理マネージャ(コンテナによってコンテナの作成と管理、ウェブによって作成および管理アプリケーションアプリケーション)を指定し
、リソース= Javaのクラス指定されたタイプの
データベース接続プールを指定= MAXACTIVEは、アクティブな接続です最大数
maxIdle =は、接続プールがアイドル状態のデータベースの最大数で指定された
この時間以上は、あなたが無期限に待つことができることを意味しており、値が-1で、ユニットを異常なプロンプトが表示されます、MAXWAIT =接続プールを指定し、接続がアイドル状態の時間のほとんどをミリ秒(ms)で
、ここで忘れてはいけない。また、LIBファイルフォルダの下にデータベースドライバのjarパッケージ、Tomcatのインストールディレクトリに追加する必要があります。

2、接続オブジェクトを取得するためにJNDIを使用して
、ルックアップ(で、java:comp / env /データソース名「);
// Javaの:COMP / ENV /これは、Java構文の要件である、書かなければならない
//ここでは、上記のデータソース名ですJDBC /ニュースは、このニュースは、プロジェクト名です。

 

3.ライト・コードは、データ・ソースを取得します

  パブリック接続getConnection2(){
    試み{
     // 初期化コンテキスト 
    コンテキストCXT = 新新のInitialContext();
     // 論理名に関連付けられたデータソースオブジェクトを取得 
    データソースDS =(データソース)cxt.lookup( 「で、java:comp / env / JDBCを/ニュース" ); 
    コネチカット = ds.getConnection(); 
   } キャッチ(のNamingException E){
     // TODO自動生成されたブロックキャッチ
    e.printStackTrace(); 
   } キャッチ(のSQLException E){
     // TODO自動生成キャッチブロック
    E .printStackTrace(); 
   } 
   戻りコネティカットを; 
  }

 

もう一つのポイントは注意する:テスト接続が成功すると、必要なJSPページの出力に接続し、代わりにJavaクラスとして実行の、Tomcatの中で設定する必要があり、データ・ソースとして実行するようにTomcatのWebコンテナ内に突出する必要があります。JSPページのコードは次のとおりです。

例: 

<%
BaseDao baseDao =新しいBaseDao()。
接続の接続= baseDao.getConnection2()。

%>

<%=接続%>

 

 

Tomcatのの構成で

構成:内context.xmlファイル

F:\ apacheの-tomcatに-7.0.68-Windowsのx64の\ apacheの-tomcatに-7.0.68 \ confに\ののcontext.xml

---------のmySQL
 < リソース= "はjdbc /ニュース" 
AUTH = "コンテナ" タイプ= "javax.sql.DataSourceの" 
MAXACTIVE = "100" 
maxIdle = "30" MAXWAIT = "10000" ユーザ名= "ルート" 
パスワード= "Admin001" 
driverClassName = "はcom.mysql.jdbc.Driver" 
URL = "はjdbc:mysqlの://127.0.0.1:3306 /ニュース" />

 

----------オラクル
 < リソース= "はjdbc / ORCL" 
AUTH = "コンテナ" タイプ= "javax.sql.DataSourceの" 
MAXACTIVEは= "100" 
maxIdle = "30" MAXWAIT = "10000" ユーザー名= "wuyong" 
パスワード= "Admin001" 
driverClassName = "oracle.jdbc.OracleDriver" 
URL = "はjdbc:オラクル:薄い:@localhost:1521:ORCL" />

 

JNDI使用して接続オブジェクトの取得
:comp / envをJavaの / JDBC /ニュース

これは、固定された書き込みである
で、java:comp / env /

 

JNDIおよびJDBC差:

Java Database Connectivity(JDBC)は、Javaアプリケーション開発者は、データベースを検索できるだけでなく、データベースにアクセスし、SQL文のJNDI(Javaの名前ディレクトリInterface)を実行するために使用するクラスやインタフェースのセットで構成され、標準のJava APIであり、それは、現在のアプリケーション・サーバの一意の識別子がそうでデータベース、Webページ、ドキュメント、接続プーリング、およびなど、すべてのリソースを管理しています。

この完全奇妙な言葉をJDBCデータソースのJNDIを設定する際のWebLogic出会いでは、理解することは、簡単なチェックされます。
JDBC:JDBCデータベース・エージェントのJavaの中央には、プロトコルは、JDBC、ODBC方法を介して、データベースまたは方法、データベースインタフェース、データベース接続に接続することができるされ、Javaアプリケーション開発者は、データベースにアクセスし、実行するために使用しますSQL文
JNDI:言語に精通しているJavaプログラマは、技術およびJDBC MySQLを理解し、あなたはすぐに適切なアプリケーションを開発することができます。しかし、出会い

1、データベースサーバ名MyDBServer、ユーザー名とパスワードを変更する必要がある場合があり、JDBC URLを変更する必要があるトリガー。

図2に示すように、データベースは、イニシエータJDBC Driverクラス名とパッケージを変更する必要があり、そのようなOracleまたはDB2の使用などの他の製品、に切り替えることができます。

ようにと、図3に示すように、端末の実際の使用の増加に伴って、接続プールの構成パラメータは、元の調整を必要とするかもしれません。

ソリューション:

プログラマは心配する必要はありません「具体的にどのようなデータベースのバックエンド?何JDBCドライバは?データベースにアクセスするためにどのようなユーザー名とパスワード?何JDBCのURL形式です」などのJDBCプログラマーのために書かれたこれらの問題は、プログラムはいけませんドライバの参照、サーバー名、ないユーザー名やパスワード-またはなくても、データベース接続プール管理。しかし、J2EEコンテナの設定と管理にこれらの問題は、プログラマだけで構成し、これらを参照することができます管理する必要があります。
次に、プログラムであるため、J2EEコンテナ内JNDI :.まず、JNDI設定パラメータの後にJNDIを使用しての練習があり、すなわち、JDBCの参照パラメータ、データソース名を設定するために、データソースを定義、バックエンドデータソース名によって参照されるデータソースのデータベースにアクセスします。

 

おすすめ

転載: www.cnblogs.com/jiayiblog/p/11056685.html