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

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

?? jdbop.java

?? 哈工大CERP系統(tǒng) java+weblogic實現(xiàn)
?? JAVA
?? 第 1 頁 / 共 3 頁
字號:
/**
 * 數(shù)據(jù)庫基本操作組件
 * 封裝了記錄的增加、修改、刪除等功能
 * 數(shù)據(jù)庫連接功能由其他組件完成(cn.com.huiton.ConnectionPool.ConnectionPool)
 *
 * 使用步驟:
 * 1、創(chuàng)建對象;
 * 2、使用 connect() 方法與數(shù)據(jù)庫建立連接;
 * 3、進行數(shù)據(jù)庫操作;
 * 4、使用 disConnect() 方法與數(shù)據(jù)庫斷開連接;
 * 5、銷毀對象。
 *
 * @@author=吳劍、王濤
 */

package com.huiton.pub.dbx;

import java.sql.*;
import java.util.Vector;
import java.util.HashMap;
import java.util.*;

import com.huiton.mainframe.util.tracer.*;

public class JdbOp
{
        public Connection m_conn;
        public JdbObj preDbObj = null;    //預先生成的數(shù)據(jù)庫操作類
        public String m_errMsg = "";
        public String sessionCode = null;   //當前會話代碼,由數(shù)據(jù)庫生成
        public Statement m_statement = null;
        Vector stVector = new Vector();     //保存新創(chuàng)立的會話,在finalize中釋放它
        boolean autoCommit = true;
        String cfgFile = "";
        boolean connectDirect = false;;    //直接連接標志,當使用公司、年、子系統(tǒng)方式直接連庫時設置為true

        public static final int DBNAME_SQLSERVER = 0;
        public static final int DBNAME_ORACLE = 0;
        public static final int DBNAME_SYBASE = 0;


        public JdbOp() throws Exception{
          /*connect();*/
          createConnect();  //以缺省參數(shù)初始化數(shù)據(jù)庫對象,wt
        }

        /**
         * Description: 構造函數(shù)。使用sessionCode獲取Cerp數(shù)據(jù)庫連接
         * @param sessionCode:系統(tǒng)登陸時創(chuàng)建的會話唯一標識
         * @param sysCode: 要聯(lián)接的系統(tǒng)代碼。如果為空,返回"sam"庫
         */
         public JdbOp(String sessionCode,String sysCode) throws Exception{
          if (!createConnect(sessionCode,sysCode))
            throw (new Exception(m_errMsg));
         }

        /**
         * Description: 構造函數(shù)。使用sessionCode獲取Cerp數(shù)據(jù)庫連接,本函數(shù)可以制定一個數(shù)據(jù)庫連接的配置文件
         * @param sessionCode:系統(tǒng)登陸時創(chuàng)建的會話唯一標識
         * @param sysCode: 要聯(lián)接的系統(tǒng)代碼。如果為空,返回"sam"庫
         * @param cfgFile: 配置文件名
         */
         public JdbOp(String sessionCode,String sysCode, String cfgFile) throws Exception{
          if (cfgFile!=null && !cfgFile.equalsIgnoreCase(""))
            this.cfgFile = cfgFile;
          if (!createConnect(sessionCode,sysCode))
            throw (new Exception(m_errMsg));
         }

         /**
          * 按照給定的參數(shù),直接連接數(shù)據(jù)庫。本方法只用于Cerp
          * @param companyCode  公司代號
          * @param year 年號
          * @param sysCode  子系統(tǒng)代號
          * @param isDirect 保留參數(shù),應總是設置為true
          * @throws Exception 拋出任何錯誤
          */
         public JdbOp(String companyCode, String year, String sysCode,boolean isDirect) throws Exception {
          if (!createConnect(companyCode,year,sysCode))
            throw new Exception("創(chuàng)建數(shù)據(jù)庫聯(lián)接出錯: " + this.m_errMsg);
          connectDirect = true;
         }

        /**
         * 插入一條記錄
         * @return boolean 操作成功返回 TRUE,否則返回 FALSE
         * @param String table 表名
         * @param String[] fields 字段名稱數(shù)組
         * @param String[] types 字段類型數(shù)組,對于char, varchar類型,對應值是string,其它類型可為任意值
         * @param String[] values 字段明對應的值的數(shù)組
         */
        public boolean insert(String table,
                              String[] fields,
                              String[] values) throws SQLException, Exception
        {
              m_errMsg = "";
                        if(fields.length!=values.length)
                                throw new Exception("The numerber of fields and values must be identical.");

                        if(m_conn==null) connect();

                        Statement statement = m_conn.createStatement();

                        String strFields="", strValues="";

                        for(int i=0;i<fields.length;i++) {
                                strFields += fields[i] + ", ";
                                strValues += "'" + values[i] + "', ";
                        }

                        strFields = strFields.substring(0, strFields.length() - 2);
                        strValues = strValues.substring(0, strValues.length() - 2);

                        String mySql = "INSERT INTO " + table + "("
                                + strFields + ") VALUES(" + strValues + ")";

                        // System.out.println(mySql);
                        statement.execute(mySql);

                        return true;
        }


        /**
         * 更新一條記錄
         * @return boolean 操作成功返回 TRUE,否則返回 FALSE
         * @param String criteria 篩選條件
         * @param String table 表名
         * @param String[] fields 字段名稱數(shù)組
         * @param String[] types 字段類型數(shù)組,對于char, varchar類型,對應值是string,其它類型可為任意值
         * @param String[] values 字段明對應的值的數(shù)組
         */
        public boolean update(String table,
                              String criteria,
                              String[] fields,
                              String[] values)
        {     m_errMsg = "";
                try {
                        if(fields.length!=values.length)
                                throw new Exception("The numerber of fields and values must be identical.");

                        if(m_conn==null) connect();

                        Statement statement = m_conn.createStatement();

                        String strFields="";
                        for(int i=0;i<fields.length;i++) {
                                strFields += fields[i] + " = '" + values[i] + "', ";
                        }
                        strFields = strFields.substring(0, strFields.length() - 2);

                        if(criteria.equals("")) criteria = " 1=1 ";
                        System.out.println("UPDATE " + table + " SET " + strFields + " WHERE " + criteria);
                        statement.execute("UPDATE " + table + " SET " + strFields + " WHERE " + criteria);

                        return true;
                }
                catch(Exception e) {
//                        disConnect();
                  m_errMsg =this.getClass().getName() + ".update(): " + e;
                        System.out.println(e.toString());
                        return false;
                }
        }


        /**
         * 刪除一條記錄
         * @return boolean 操作成功返回 TRUE,否則返回 FALSE
         * @param String table 表名
         * @param String criteria 篩選條件
         */
        public boolean delete(String table, String criteria)
        {m_errMsg = "";
                try {
                        if(m_conn==null) connect();
                        Statement statement = m_conn.createStatement();
                        statement.execute("DELETE FROM " + table + " WHERE " + criteria);

                        return true;
                }
                catch(Exception e) {
//                        disConnect();
                        System.out.println(e.toString());
                        return false;
                }
        }


        /**
         * void connect()		與數(shù)據(jù)庫建立連接
         *
         * 返回值:				void
         *
         * 參數(shù):
         * modify by wt: 2001.7.12. remove 連接池
         */
        public void connect() {
                if(m_conn!=null) return;

                try {
/*
                        ConnectionPool pool = new ConnectionPool();
                        if(pool.getDriver()==null) {
                            pool.setDriver("sun.jdbc.odbc.JdbcOdbcDriver");
                            pool.setURL("jdbc:odbc:EJBTest");
                            pool.setUsername("cerp95");
                            pool.setPassword("ttbq");
                            pool.setSize(5);
                            pool.initializePool();
                        }

                        conn = pool.getConnection();
*/
                  System.out.println("-----in JdbOp:");
                  createConnect();
                }
                catch(Exception e) {
                        disConnect();
            e.printStackTrace();
                }
        }


        /**
         * void disConnect()	斷開數(shù)據(jù)庫連接
         *
         * 返回值:				void
         *
         * 參數(shù):
         */
        public void disConnect() {
                try {
                        if(m_conn!=null)
                                m_conn.close();
        }
        catch (SQLException e) {
            e.printStackTrace();
        }
    }

  /**
   *Title: 創(chuàng)建表
   *Description 本方法根據(jù)給出的參數(shù)創(chuàng)建數(shù)據(jù)表。使用本類中已經(jīng)創(chuàng)建的連接conn
   *@param tblName 要創(chuàng)建的表名
   *@param FieldDef[] 表的字段定義
   *@return 表創(chuàng)建成功或表已經(jīng)存在,返回true。否則返回false
   */
  public boolean createTbl(String tblName, FieldDef[] fields) {
     m_errMsg = "";
     String mySql = "Create table " + tblName + " (";

try{
    if (preDbObj == null) {//連接還沒有建立,以缺省方式建立之
      if (!createConnect()){
        m_errMsg = preDbObj.m_errMsg;
        return false;
      }
    }

    //分析建表數(shù)據(jù)
    if (tblName==null || tblName.length()==0) {
      m_errMsg = "要創(chuàng)建的表名非法:" + tblName;
      return false;
    }

    if (preDbObj.hasTable(tblName))
      return true;  //已經(jīng)有該表,直接返回

    if (fields.length==0) {
      m_errMsg = "沒有字段定義";
      return false;
    }

    //創(chuàng)建表
    int fCounter;
    m_errMsg = "";
    String keyStr = "";   //鍵值
    //循環(huán)添加要創(chuàng)建的字段
    for (fCounter = 0; fCounter < fields.length; fCounter++){
      if (fCounter > 0)
        mySql += ",";     //拼下一句前加分隔符
      mySql += fields[fCounter].colName + " ";
      mySql += fields[fCounter].colType;
      if (fields[fCounter].colDft!=null &&  fields[fCounter].colDft.length() > 0)
        mySql += " default " + fields[fCounter].colDft;         //有缺省值
      else if (!fields[fCounter].nullable)    //不允許為空
        mySql += " not null";
      //添加鍵值
      if (fields[fCounter].isPriKey) {
        if (keyStr.length() == 0)
          keyStr = ", primary key(" + fields[fCounter].colName;
        else
          keyStr += "," + fields[fCounter].colName;
      }
    }
    //完成語句
    if (keyStr.length() > 0)
      {//有鍵值定義
       keyStr += ")";
       mySql += keyStr + ")";
      }

    //執(zhí)行語句
    Statement statement = preDbObj.conn.createStatement();
//System.out.println(mySql);
    statement.execute(mySql);

    return true;
}catch (Exception e) {
  m_errMsg = e.getMessage() + "--\n" + mySql;
  System.out.println(m_errMsg);
  return false;
}

  }

  /**
   * Title: 創(chuàng)建索引
   * Description: 本功能在當前連接的數(shù)據(jù)庫中創(chuàng)建表的索引
   * @param idxName 索引名
   * @param tblName 表名
   * @param isUnique 是否為唯一索引
   * @param fields 索引字段定義
   * @return 索引創(chuàng)建成功或索引已經(jīng)存在,返回true。否則返回false
   */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲激情五月婷婷| 亚洲国产高清在线观看视频| 色综合中文综合网| 日韩伦理免费电影| 中文字幕中文字幕一区| 亚洲国产高清aⅴ视频| 日本一区二区视频在线观看| 国产欧美日韩卡一| 亚洲色图.com| 亚洲综合在线免费观看| 亚洲成人av资源| 蜜桃在线一区二区三区| 精品一区二区三区在线播放视频| 秋霞av亚洲一区二区三| 精品一区二区成人精品| 国产精品影音先锋| 国产白丝网站精品污在线入口| 国产福利一区二区三区视频| 国产成人8x视频一区二区| 北岛玲一区二区三区四区| 91天堂素人约啪| 欧美视频在线一区| 精品少妇一区二区三区在线播放| 2023国产精华国产精品| 中文字幕不卡在线观看| 一区二区视频在线看| 婷婷丁香久久五月婷婷| 国产成人一级电影| 91福利社在线观看| 日韩欧美一级在线播放| 国产精品视频一二| 午夜天堂影视香蕉久久| 国产精品18久久久久久久久| 色呦呦日韩精品| 欧美精品一区二区三区四区| 亚洲欧美综合网| 日本亚洲免费观看| 成人免费福利片| 91精品黄色片免费大全| 一区二区三区日韩欧美精品| 欧美巨大另类极品videosbest | 日韩电影免费在线| 欧美日韩三级视频| 日韩电影在线免费观看| 欧美一区二区三区免费视频| 免费久久99精品国产| 日韩欧美中文字幕制服| 蜜臀av在线播放一区二区三区| 欧美一区二区三区在线| 韩国三级中文字幕hd久久精品| 久久久国产综合精品女国产盗摄| 国产91清纯白嫩初高中在线观看 | 亚洲午夜私人影院| 51精品视频一区二区三区| 蜜桃精品在线观看| 久久精品视频一区| 91麻豆精品在线观看| 亚洲午夜久久久久久久久电影网| 欧美精品一卡两卡| 国内精品不卡在线| 国产精品福利电影一区二区三区四区| 99久久精品国产一区二区三区 | 在线免费观看不卡av| 亚洲不卡在线观看| 久久久久久久久岛国免费| 成人av免费网站| 五月婷婷激情综合| 久久久精品蜜桃| 欧美伊人久久大香线蕉综合69| 日韩 欧美一区二区三区| 国产三级三级三级精品8ⅰ区| 色婷婷亚洲精品| 精品一区二区三区的国产在线播放 | 日韩福利视频导航| 中文一区在线播放| 欧美日韩精品欧美日韩精品一| 国产乱码精品一品二品| 亚洲丶国产丶欧美一区二区三区| 精品国产乱码久久久久久影片| 99re这里只有精品6| 日本vs亚洲vs韩国一区三区 | 99v久久综合狠狠综合久久| 天天爽夜夜爽夜夜爽精品视频| 国产女人18水真多18精品一级做| 日本精品裸体写真集在线观看| 国内精品伊人久久久久av影院| 亚洲理论在线观看| 26uuuu精品一区二区| 欧美男女性生活在线直播观看 | 国产一区二区在线观看视频| 亚洲在线一区二区三区| 国产亚洲综合在线| 欧美一级高清大全免费观看| 在线一区二区视频| av亚洲精华国产精华精| 狠狠色狠狠色合久久伊人| 亚洲国产精品久久久久秋霞影院 | 午夜私人影院久久久久| 亚洲三级理论片| 欧美极品aⅴ影院| 精品久久人人做人人爽| 欧美久久久久久蜜桃| 色94色欧美sute亚洲13| 成人免费高清在线观看| 国产成人综合在线播放| 久久国产视频网| 蜜桃久久久久久| 美国欧美日韩国产在线播放| 日本欧美一区二区| 视频在线观看一区| 三级欧美在线一区| 日韩成人伦理电影在线观看| 五月激情综合婷婷| 日本三级韩国三级欧美三级| 日本欧洲一区二区| 美国三级日本三级久久99| 另类综合日韩欧美亚洲| 久久99久久久欧美国产| 久久超碰97中文字幕| 蜜桃免费网站一区二区三区| 美女视频一区二区| 激情小说亚洲一区| 国产乱子伦一区二区三区国色天香| 韩国女主播成人在线观看| 紧缚奴在线一区二区三区| 国产精品一区专区| 国产不卡在线一区| 色综合天天性综合| 色综合久久中文字幕| 色噜噜夜夜夜综合网| 欧美视频一区二区三区在线观看 | 久久影视一区二区| 中文一区二区完整视频在线观看| 国产精品色哟哟| 一区二区三区四区视频精品免费| 亚洲国产成人av网| 爽爽淫人综合网网站| 国内精品国产三级国产a久久 | 国产精品乱码久久久久久| 综合分类小说区另类春色亚洲小说欧美 | 亚洲综合小说图片| 日韩高清在线观看| 国产99久久久精品| 91黄视频在线观看| 日韩精品一区二区三区在线 | 国产成人午夜精品5599| jvid福利写真一区二区三区| 欧美丝袜丝交足nylons图片| 日韩亚洲欧美在线观看| 亚洲国产精品ⅴa在线观看| 亚洲精品欧美二区三区中文字幕| 日韩专区欧美专区| 国产成a人亚洲精品| 欧美久久久久免费| 国产精品视频你懂的| 日韩二区三区四区| av中文一区二区三区| 欧美一区二区国产| 亚洲视频在线一区二区| 麻豆成人久久精品二区三区红 | 91精品国产综合久久久久久| 久久久久久久网| 无码av免费一区二区三区试看| 国产aⅴ综合色| 日韩午夜电影av| 亚洲精品写真福利| 国产精品99久| 日韩一区二区三区电影| 中文字幕在线观看一区| 久久99精品久久久| 欧美日韩精品免费观看视频| 国产精品网站在线播放| 狠狠色综合色综合网络| 欧美日韩另类一区| 亚洲丝袜精品丝袜在线| 国产精品自拍毛片| 日韩欧美激情一区| 亚洲国产日韩a在线播放性色| 国产成人aaa| 精品国产凹凸成av人网站| 日韩激情在线观看| 91社区在线播放| 国产精品网站在线| 国产成人在线色| 欧美成人乱码一区二区三区| 亚洲6080在线| 欧美优质美女网站| 日韩美女久久久| 99久久婷婷国产精品综合| 欧美极品美女视频| 国产一区999| 久久久噜噜噜久久中文字幕色伊伊| 日韩电影在线一区| 欧美日韩国产高清一区二区| 一区二区三区 在线观看视频| 91丨porny丨中文| 亚洲天堂a在线| 成人国产一区二区三区精品| 国产视频一区二区在线观看| 国产一区二区三区四|