亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dblib.java

?? 有關java的一個簡單樹
?? JAVA
字號:
/**
 * 數據庫訪問公用
 */
package com.db;

import java.sql.*;
import java.util.*;
import java.io.*;

public class DBLib {

  private static final String CFG_RES_NAME = "DBLib"; //DBLib.class.getName()

  private static String DRIVER_NAME;
  private static String USER_NAME;
  private static String PASSWORD;
  private static String CONNECTION_URL;

  static boolean loadDriverOK = true;
  static int connCount = 0;
  static Connection pooledConn = null; // 只用這一個連接

  static {
    try {
      initConfig();
      Class.forName(DRIVER_NAME);
    }
    catch (Exception e) {
      loadDriverOK = false;
    }
  }

  /**
   * initConfig 根據配置文件初始化
   */
  private static void initConfig() throws NullPointerException, MissingResourceException{
    ResourceBundle rb = ResourceBundle.getBundle(CFG_RES_NAME);
    if (rb != null){
      DRIVER_NAME = rb.getString("DRIVER_NAME");
      PASSWORD = rb.getString("PASSWORD");
      CONNECTION_URL = rb.getString("CONNECTION_URL");
      USER_NAME = rb.getString("USER_NAME");
    }
  }

  /**
   * genConnection 產生一個連接
   * @return
   * @throws SQLException
   */
  static Connection genConnection() throws SQLException{
    return loadDriverOK ? DriverManager.getConnection(CONNECTION_URL, USER_NAME, PASSWORD) : null;
  }

  /**
   * getConnection 獲取一個連接
   * @return
   * @throws SQLException
   */
  public static Connection getConnection() throws SQLException{
    if (pooledConn != null && pooledConn.isClosed()){ connCount = 0; pooledConn = null; }

    if (pooledConn == null){
      pooledConn = genConnection();
    }
    connCount++;
    return pooledConn;
  }

  /**
   * freeConnection 釋放連接(pooledConn專用,如果連接不是pooledConn則不處理)
   * @param conn
   * @throws SQLException
   */
  public static void freeConnection(Connection conn) throws SQLException{
    if (conn != null && conn == pooledConn && --connCount == 0){
      pooledConn.close();
    }
  }

  /**
   * exec 在一個事務里面執行statements語句組
   * @param sql
   * @return
   */
  public static boolean exec(String[] statements) {
    if (!loadDriverOK) return false;

    boolean is_ok = true;

    Connection conn = null;
    Statement stmt = null;

    try {
      conn = genConnection(); //getConnection();

      conn.setAutoCommit(false);
      stmt = conn.createStatement();

      for (int i=0; i < statements.length; i++)
        stmt.executeUpdate(statements[i]);

      conn.commit();
    }
    catch (SQLException e) {

      is_ok = false;
      if (conn != null) {
        try {
          conn.rollback();
        }
        catch (Exception ex) {}
      }
      e.printStackTrace();
    }
    finally {
      try {
        conn.close(); conn = null;//freeConnection(conn);
      }
      catch (Exception e) {}
    }

    return is_ok;
  }

  /**
   * exec 執行不返回查詢結果的SQL語句
   * @param sql
   * @return 執行成功返回true,否則false
   */
  public static boolean exec(String sql) {
    String[] statements = {sql};
    return exec(statements);
  }

  /**
   * getIndexRecords 返回的Vector的元素是String[],每個String[]元素是一條紀錄
   * @param query
   * @return
   */
  public static IndexRecords getIndexRecords(String query) {
    if (!loadDriverOK) return null;

    IndexRecords result = new IndexRecords();
    Connection conn = null;
    Statement stmt = null;
    ResultSet rest = null;

    try {
      conn = getConnection();

      stmt = conn.createStatement();
      rest = stmt.executeQuery(query);
      int cols = rest.getMetaData().getColumnCount();

      while (rest.next()) {
        String[] temp = new String[cols];
        for (int i = 0; i < cols; i++) {
          temp[i] = rest.getString(i + 1);
        }
        result.addElement(temp);
      }
    }
    catch (SQLException e) {
      result = null;
      e.printStackTrace();
    }
    finally {

      try {
        if (rest != null) {
          rest.close();
        }
        if (stmt != null) {
          stmt.close();
        }
        if (conn != null) {
          freeConnection(conn);
        }
      }
      catch (SQLException e) {}
    }

    return result;
  }

  /**
   * getNameRecords 返回的Vector的元素是HashMap,每個HasMap對象是一條以列名為索引的紀錄
   * @param query
   * @return
   */
  public static NameRecords getNameRecords(String query){
    if (!loadDriverOK) return null;

    NameRecords result = new NameRecords();
    Connection conn = null;
    Statement stmt = null;
    ResultSet rest = null;

    try {
      conn = getConnection();
      stmt = conn.createStatement();
      rest = stmt.executeQuery(query);

      ResultSetMetaData rsMetaData = rest.getMetaData();
      int cols = rsMetaData.getColumnCount();
      NameRecord nameRecord = null;

      // 獲取列名
      String[] colLabels = new String[cols];
      for (int i = 0; i < cols; i++){
        colLabels[i] = rsMetaData.getColumnName(i+1);
      }

      while (rest.next()) {
        nameRecord = new NameRecord();
        for (int i = 0; i < cols; i++) {
          nameRecord.put(colLabels[i], rest.getString(i + 1));
        }
        result.addElement(nameRecord);
      }

    }
    catch (SQLException e) {
      result = null;
      e.printStackTrace();
    }
    finally {

      try {
        if (rest != null) {
          rest.close();
        }
        if (stmt != null) {
          stmt.close();
        }
        freeConnection(conn);
      }
      catch (SQLException e) {}
    }

    return result;
  }

  public static void main(String[] args) throws Exception{
    /** getRecordsByIndex test
    Vector vec = getRecordsByIndex("select count(*) from BUS_SER_COM_DEAL");
    String[] result = (String[]) vec.get(0);
    System.out.println(result[0]); */

    /** getRecordsByName test
    NameRecords results = getNameRecords("select SEQ_NC_USER.nextval as seq from dual");
    System.out.println(results.getRecord(0).getFieldValue("SEQ"));
    /**/

    /** pooledConn test
    Connection[] conns = new Connection[50];
    for (int i = 0; i < 50; i++){
      conns[i] = getConnection();
    }
    for (int i = 0; i < 50; i++){
      freeConnection(conns[i]);
    }*/

    NameRecord nr = new NameRecord();
    nr.put("A", "A");
    System.out.println(nr.getFieldValue("A"));
    nr.put("A", "B");
    System.out.println(nr.getFieldValue("A"));
  }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久久久久晋中| 精品久久免费看| 欧美电影影音先锋| 国产欧美日韩亚州综合 | 石原莉奈在线亚洲二区| 久久不见久久见免费视频7| 91在线云播放| 久久日韩精品一区二区五区| 亚洲福利电影网| 高清在线不卡av| 日韩欧美亚洲一区二区| 亚洲一级片在线观看| 国产91精品精华液一区二区三区| 欧美精品1区2区| 一区二区国产盗摄色噜噜| 国产成人精品亚洲午夜麻豆| 欧美一级日韩不卡播放免费| 一区二区三区在线观看国产| 成人开心网精品视频| 久久蜜桃香蕉精品一区二区三区| 亚洲国产成人91porn| 99国产精品久久久| 中文欧美字幕免费| 国产精品99久久久| 久久日韩粉嫩一区二区三区| 视频在线观看国产精品| 欧美三级在线播放| 一区二区三区在线观看网站| 色婷婷综合久久| 亚洲激情第一区| 色综合咪咪久久| 尤物av一区二区| 欧美在线一区二区三区| 一区二区三区在线免费播放| 91黄视频在线| 亚洲成人你懂的| 欧美日本韩国一区二区三区视频| 亚洲一区二区三区激情| 欧美天堂一区二区三区| 亚洲一区二区精品视频| 欧美福利一区二区| 日韩一区精品字幕| 欧美电影免费观看高清完整版在线观看| 三级在线观看一区二区| 日韩欧美一区二区不卡| 国内精品国产成人| 国产日韩欧美麻豆| 成人av在线观| 亚洲成人av免费| 日韩欧美国产小视频| 国产精品香蕉一区二区三区| 国产欧美日韩一区二区三区在线观看| 国产夫妻精品视频| 亚洲日本免费电影| 欧美午夜在线观看| 免费国产亚洲视频| 国产日韩精品视频一区| 99久久精品99国产精品| 亚洲va欧美va人人爽| 欧美成人猛片aaaaaaa| 国产成人丝袜美腿| 一区av在线播放| 欧美白人最猛性xxxxx69交| 豆国产96在线|亚洲| 亚洲综合免费观看高清完整版| 7777精品伊人久久久大香线蕉超级流畅| 蜜臀91精品一区二区三区 | 国产永久精品大片wwwapp| 亚洲国产精品激情在线观看| 在线免费观看一区| 久久成人免费电影| 亚洲精品久久久久久国产精华液| 欧美美女一区二区三区| 国产剧情一区二区| 午夜私人影院久久久久| 国产日韩欧美在线一区| 欧美精品日韩综合在线| 国产成人99久久亚洲综合精品| 亚洲影院理伦片| 久久精品一区蜜桃臀影院| 欧美性视频一区二区三区| 国产乱人伦偷精品视频免下载 | 国产亚洲综合av| 欧美亚男人的天堂| 国产98色在线|日韩| 亚洲成av人片一区二区梦乃 | 国产成人av资源| 亚洲国产精品久久久久婷婷884 | 亚洲同性gay激情无套| 日韩精品影音先锋| 欧美视频在线不卡| 99久久免费精品高清特色大片| 麻豆精品一区二区三区| 亚洲国产精品嫩草影院| 亚洲欧美在线视频| 国产欧美日韩另类视频免费观看| 欧美日韩高清在线| 91精品福利视频| a级精品国产片在线观看| 久久电影网电视剧免费观看| 亚洲大片精品永久免费| 亚洲精品欧美综合四区| 最新欧美精品一区二区三区| 国产欧美一区二区三区在线老狼| 日韩精品一区在线观看| 欧美一区二区精品在线| 精品视频1区2区| 欧美性猛交一区二区三区精品| 成人的网站免费观看| 国产盗摄一区二区| 国产精品99久久久久| 国内精品视频一区二区三区八戒| 美女视频免费一区| 麻豆中文一区二区| 免费不卡在线观看| 首页国产欧美久久| 日本免费在线视频不卡一不卡二| 亚洲成人1区2区| 亚洲国产精品尤物yw在线观看| 亚洲国产视频一区| 亚洲1区2区3区视频| 亚洲成av人片一区二区三区| 亚洲国产精品久久人人爱蜜臀| 亚洲高清免费一级二级三级| 亚洲高清免费观看| 免费成人在线视频观看| 麻豆91精品91久久久的内涵| 另类小说一区二区三区| 精品一区二区三区蜜桃| 国产一区二区看久久| 成人中文字幕在线| 97精品国产露脸对白| 在线观看国产精品网站| 欧美电视剧在线看免费| 国产亚洲精品bt天堂精选| 欧美极品xxx| 亚洲精品网站在线观看| 午夜视频在线观看一区二区| 毛片一区二区三区| 懂色av一区二区三区蜜臀| 91免费视频网| 在线成人小视频| 久久久精品蜜桃| 亚洲精品欧美专区| 蜜桃在线一区二区三区| 大胆亚洲人体视频| 欧美图区在线视频| 久久精品在线观看| 亚洲一区二区三区不卡国产欧美| 美女精品自拍一二三四| 成人黄色在线视频| 制服丝袜中文字幕一区| 日本一区二区三区视频视频| 亚洲午夜视频在线观看| 韩国精品久久久| 欧美三级欧美一级| 国产午夜精品一区二区三区四区| 亚洲视频电影在线| 久久99精品久久久久久国产越南| 99免费精品在线观看| 日韩一区二区三区在线视频| 中文字幕一区不卡| 精品亚洲免费视频| 欧美亚洲动漫制服丝袜| 国产女主播视频一区二区| 天堂一区二区在线免费观看| 成人免费视频网站在线观看| 91精品黄色片免费大全| |精品福利一区二区三区| 精品在线播放午夜| 欧美日韩黄色一区二区| 国产精品无遮挡| 精品一区二区三区久久| 欧美午夜精品电影| 国产精品福利一区二区| 国内外成人在线| 91精品国产综合久久福利| 亚洲精品水蜜桃| 成人一区在线观看| 久久综合九色综合欧美亚洲| 亚洲香蕉伊在人在线观| aaa国产一区| 欧美国产禁国产网站cc| 蜜臀av亚洲一区中文字幕| 欧美日韩国产综合草草| 亚洲精品成人少妇| 久久综合999| 亚洲18色成人| 色婷婷亚洲婷婷| 国产精品另类一区| 国产成人在线视频网址| 日韩一卡二卡三卡| 美女一区二区视频| 欧美一区二区观看视频| 午夜精品久久久久久久久久久| 91久久久免费一区二区| 亚洲人123区| av电影天堂一区二区在线| 国产精品国模大尺度视频| 成人a免费在线看|