#のOracleデータベース接続
#* - -コーディング:UTF-8 - * - インポートcx_Oracle Oracleなど から DBUtils.PooledDB インポートPooledDBの クラスOrclPool(オブジェクト): "" " 。1)ここで、Oracle接続プールをパッケージに関連する機能の数。 2)およびSID SERVICE_NAME、プログラムは、自動的に決定された値を有する 二つの値がある場合、SIDのデフォルトを使用して、; 一方が使用したい場合、唯一の他のSERVICE_NAME =」として設定されている空に必要。 ' 3)コンフィグ上に配置され、値の唯一のタイプは、ポートINTであり、他はSTRである: "" " DEF __init__ (セルフ、コンフィグ): self.conn = OrclPool __get_conn (設定) self.cur = self.conn .CURSOR() @staticmethod DEF __get_conn (CONF): 「」 " いくつかのPoolDBパラメータを使用してもよいし、選択するための実際の状況に応じて自分の mincached:オープンエアの接続の数は、あなたが起動したときに maxcached:接続の接続プールの利用可能な最大数は maxshared:共有することができる接続の接続プールの最大数 MaxConnectionsをします:接続の最大数が許容 ブロッキング:最大数がブロックされ達する 最大単一接続多重周波数:maxusage :PARAMのCONF:Oracle接続情報のdict 「」 " ホスト、ポート、SID、SERVICE_NAME = conf.get(『ホスト』) conf.get(' ポート')、conf.get(' SID ')、conf.get(' SERVICE_NAME ') DSN = なし の場合SID: DSN = Oracle.makedsn(ホスト、ポート、SID = SID) ELIFのSERVICE_NAME: DSN = Oracle.makedsn(ホスト、ポート、SERVICE_NAME = conf.get(' SERVICE_NAME ' )) __pool = PooledDB(オラクル、ユーザー= CONF [ ' ユーザー' ]、パスワード= CONF [ ' passwdの' ]、DSN = DSN、mincached = 1、maxcached = 5 ) リターン __poolの.connection() デフ EXECUTE_SQL(自己、SQL、引数= なし): "" " 执行SQL语句 :のparam SQL:STR SQL文 :のparam引数:リストパラメータリストのSQL文 "" " IF 引数: self.cur.execute(SQL、引数) 他: self.cur.execute(SQL)は DEF(セルフ、SQLをfetch_all、引数= なし): "" " 完全な結果を得る :のparam SQL:STR SQL文 :PARAM引数:リストSQL文のパラメータ :リターン:タプルは結果フェッチ " "" self.execute_sql(SQL、引数) 戻りself.cur.fetchallを() DEFのcommit_sql(セルフ、SQL): self.cur.execute(SQL) self.conn。)(コミット DEF __del__(自己): "" " リソース・インスタンスに回収され、接続が閉じられたプールである " "" self.cur.close() self.conn.close() IF __name__ == " __main__ " : orcl_cfgは = { ' ユーザ':「ユーザ名」、#データベースのユーザー名 「passwdの」:「パスワード」、#データベースのパスワード 「ホスト」:「0.0.0.0 」、#データベースリンクアドレス 「ポート」:3000 、#ポート ' SID ':'' 、 ' SERVICE_NAME ':' tpi2hx '、データベース名# } ORCL = OrclPool(orcl_cfg)