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

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

?? pkcache.java

?? 利用java反射機制
?? JAVA
字號:
// FIXME CONCURRENT ACCESS TO DRIVER, URL ETC...??package org.julp;import java.util.*;    /**      * Retrieves and caches PrimaryKeys form DatabaseMetaData               */public class PKCache implements java.io.Serializable, Cloneable {          private PKCache() {        if (Boolean.getBoolean("debug-julp") || Boolean.getBoolean("debug-" + getClass().getName())){            debug = true;        }            }        private static PKCache instance = null;    /*PK for each table */    protected Map pkCache = new HashMap();        protected DBServices dbServices = null;    protected String dataSourceName = null;    protected String dbUrl = null;    private String userName = null;    private String password = null;    private String driverName = null;    private Properties optionalConnectionProp = null;    protected boolean useDataSource = true;    protected boolean debug = false;        public static PKCache getInstance() {        // Not completely thread-safe, but good enough?        if (instance == null) {            instance = new PKCache();        }        return instance;    }        /*     *This method allows to set columns for a table PrimaryKey without Database connection, etc.     *     * Make sure to use format:  catalog + "." + schema + "." + table + "." + column     *   or schema + "." + table + "." + column          */    public synchronized void setPrimaryKey(String catalog, String schema, String table, List pk){        String tableId = null;        if (catalog != null && !catalog.trim().equals("")){            tableId = catalog + "." + schema + "." + table;        }else if (schema != null && !schema.trim().equals("")){            tableId = schema + "." + table;        }else if (table != null && !table.trim().equals("")){            tableId = table;        }else{            throw new IllegalArgumentException("setPrimaryKey(): missing all table identifiers");        }        if (pk == null || pk.size() == 0){            throw new IllegalArgumentException("setPrimaryKey(): PK list is empty");        }        if (debug) System.out.println("julp ============= " + new java.util.Date() + " " + this.getClass() + "::setPrimaryKey()::tableId: " + tableId + " pk: " + pk);               pkCache.put(tableId, pk);    }        public synchronized List getPrimaryKey(String catalog, String schema, String table){        String tableId = null;        if (catalog != null && !catalog.trim().equals("")){            tableId = catalog + "." + schema + "." + table;        }else if (schema != null && !schema.trim().equals("")){            tableId = schema + "." + table;        }else if (table != null && !table.trim().equals("")){            tableId = table;        }else{            throw new IllegalArgumentException("setPrimaryKey(): missing all table identifiers");        }                List pkFields = (List) this.pkCache.get(tableId);        if (debug) System.out.println("julp ============= " + new java.util.Date() + " " + this.getClass() + "::getPrimaryKey()::tableId: " + tableId + " pkFields: " + pkFields);        if (pkFields != null) {            return pkFields; //it's already cached        }else{            pkFields = new ArrayList();        }        java.sql.ResultSet pkInfo = null;        try{            if (dbServices == null){                dbServices = new DBServices();            }                        if (this.isUseDataSource()){                if (dbServices.getDataSourceName() == null || !dbServices.getDataSourceName().equals(this.dataSourceName)){                    dbServices.release(true);                    dbServices.setDataSourceName(this.dataSourceName);                }            }else{                dbServices.setUseDataSource(false);                if (dbServices.getDriverName() == null || !dbServices.getDriverName().equals(this.driverName) ||                    dbServices.getDbUrl() == null || !dbServices.getDbUrl().equals(this.dbUrl) ||                    dbServices.getUserName() == null || !dbServices.getUserName().equals(this.userName) ||                    dbServices.getPassword() == null || !dbServices.getPassword().equals(this.password)){                    dbServices.release(true);                    dbServices.setConnectionProperties(this.optionalConnectionProp);                    dbServices.setDriverName(this.driverName);                    dbServices.setDbUrl(this.dbUrl);                    dbServices.setUserName(this.userName);                    dbServices.setPassword(this.password);                }            }            java.sql.DatabaseMetaData dbmd = dbServices.getConnection().getMetaData();            if (debug) System.out.println("julp ============= " + new java.util.Date() + " " + this.getClass() + "::getPrimaryKey()::DatabaseMetaData: " + dbmd);            if (debug) System.out.println("julp ============= " + new java.util.Date() + " " + this.getClass() + "::getPrimaryKey()::catalog: " + catalog);            if (debug) System.out.println("julp ============= " + new java.util.Date() + " " + this.getClass() + "::getPrimaryKey()::schema: " + schema);            if (debug) System.out.println("julp ============= " + new java.util.Date() + " " + this.getClass() + "::getPrimaryKey()::table: " + table);            pkInfo = dbmd.getPrimaryKeys(catalog, schema, table);            if (debug) System.out.println("julp ============= " + new java.util.Date() + " " + this.getClass() + "::getPrimaryKey()::pkInfo: " + pkInfo);            while(pkInfo.next()){                if (debug) System.out.println("julp ============= " + new java.util.Date() + " " + this.getClass() + "::getPrimaryKey()::pkInfo.next()");                String columnName = pkInfo.getString(4);                pkFields.add(tableId + "." + columnName);            }            if (debug) System.out.println("julp ============= " + new java.util.Date() + " " + this.getClass() + "::getPrimaryKey()::pkFields: " + pkFields);            if (pkFields.isEmpty()){                throw new java.sql.SQLException("Cannot retrieve PrimaryKey info from DatabaseMetaData");            }        }catch (java.sql.SQLException sqle){            throw new RuntimeException(sqle);        }catch (Exception e){            throw new RuntimeException(e);        }finally{            try{                if (pkInfo != null) pkInfo.close();                dbServices.release(true);            }catch (java.sql.SQLException sqle){                sqle.printStackTrace();                throw new RuntimeException(sqle);            }        }        pkCache.put(tableId, pkFields);        return pkFields;    }    //    public void setMetaData(String objectClassName, MetaData metaData){//        metaDataMap.put(objectClassName, metaData);//    }//    //    public MetaData getMetaData(String objectClassName){//        return (MetaData) metaDataMap.get(objectClassName);//    }        /** Getter for property dbServices.     * @return Value of property dbServices.     *     */    public org.julp.DBServices getDbServices() {        return dbServices;    }        /** Setter for property dbServices.     * @param dbServices New value of property dbServices.     *     */    public void setDbServices(org.julp.DBServices dbServices) {        this.dbServices = dbServices;    }        /** Getter for property dataSourceName.     * @return Value of property dataSourceName.     *     */    public java.lang.String getDataSourceName() {        return dataSourceName;    }        /** Setter for property dataSourceName.     * @param dataSourceName New value of property dataSourceName.     *     */    public void setDataSourceName(java.lang.String dataSourceName) {        this.dataSourceName = dataSourceName;    }        /** Getter for property dbUrl.     * @return Value of property dbUrl.     *     */    public java.lang.String getDbUrl() {        return dbUrl;    }        /** Setter for property dbUrl.     * @param dbUrl New value of property dbUrl.     *     */    public void setDbUrl(java.lang.String dbUrl) {        this.dbUrl = dbUrl;    }        /** Getter for property userName.     * @return Value of property userName.     *     */    public java.lang.String getUserName() {        return userName;    }        /** Setter for property userName.     * @param userName New value of property userName.     *     */    public void setUserName(java.lang.String userName) {        this.userName = userName;    }        /** Getter for property password.     * @return Value of property password.     *     */    public java.lang.String getPassword() {        return password;    }        /** Setter for property password.     * @param password New value of property password.     *     */    public void setPassword(java.lang.String password) {        this.password = password;    }        /** Getter for property useDataSource.     * @return Value of property useDataSource.     *     */    public boolean isUseDataSource() {        return useDataSource;    }        /** Setter for property useDataSource.     * @param useDataSource New value of property useDataSource.     *     */    public void setUseDataSource(boolean useDataSource) {        this.useDataSource = useDataSource;    }        /** Getter for property driverName.     * @return Value of property driverName.     *     */    public java.lang.String getDriverName() {        return driverName;    }        /** Setter for property driverName.     * @param driverName New value of property driverName.     *     */    public void setDriverName(java.lang.String driverName) {        this.driverName = driverName;    }            /** Getter for property optionalConnectionProp.     * @return Value of property optionalConnectionProp.     *     */    public java.util.Properties getOptionalConnectionProp() {        return optionalConnectionProp;    }        /** Setter for property optionalConnectionProp.     * @param optionalConnectionProp New value of property optionalConnectionProp.     *     */    public void setOptionalConnectionProp(java.util.Properties optionalConnectionProp) {        this.optionalConnectionProp = optionalConnectionProp;    }    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区精品| 亚洲激情男女视频| 亚洲免费视频成人| 毛片av一区二区三区| 91久久香蕉国产日韩欧美9色| 久久美女艺术照精彩视频福利播放| 亚洲美腿欧美偷拍| 成人毛片老司机大片| 欧美一二三四区在线| 玉足女爽爽91| 成人精品gif动图一区| 日韩女同互慰一区二区| 亚洲综合在线电影| 成人久久18免费网站麻豆| 欧美不卡一区二区三区四区| 亚洲国产成人高清精品| 99re这里只有精品视频首页| 久久亚洲一区二区三区明星换脸 | 国产福利一区二区三区视频在线| 91黄色激情网站| 国产精品久久久久久久久快鸭| 狠狠色丁香婷综合久久| 这里只有精品电影| 亚洲不卡在线观看| 色菇凉天天综合网| 亚洲欧美日韩电影| 99国产精品久| 国产精品国产三级国产普通话99 | 日本一区二区三区国色天香| 麻豆精品新av中文字幕| 日韩一区二区在线观看| 免费一级片91| 欧美一级片在线| 日本一道高清亚洲日美韩| 欧美酷刑日本凌虐凌虐| 亚洲成人免费视| 在线不卡的av| 麻豆91在线播放免费| 日韩欧美国产一区在线观看| 看电视剧不卡顿的网站| 精品99一区二区| 国产高清精品在线| **欧美大码日韩| 欧美亚洲精品一区| 亚洲h精品动漫在线观看| 欧美乱妇23p| 美女视频黄a大片欧美| 精品国产伦一区二区三区观看体验| 男男视频亚洲欧美| 26uuu精品一区二区| 成人国产精品免费观看| 亚洲精品久久久久久国产精华液| 欧洲一区在线观看| 青青国产91久久久久久| 久久精品亚洲精品国产欧美| 99re热视频这里只精品| 亚洲高清免费在线| 精品国产乱子伦一区| 粉嫩13p一区二区三区| 亚洲美女电影在线| 日韩欧美中文字幕公布| 丁香婷婷综合激情五月色| 亚洲资源中文字幕| 日韩一区二区精品葵司在线| 成人av资源在线| 亚洲国产精品影院| 久久久国产精华| 欧美色综合天天久久综合精品| 狠狠狠色丁香婷婷综合久久五月| 国产精品久久久久9999吃药| 制服.丝袜.亚洲.中文.综合| 国产精品18久久久久久久网站| 樱花草国产18久久久久| 精品国产一区二区三区久久久蜜月| 成人激情电影免费在线观看| 日韩av中文字幕一区二区| 中文在线资源观看网站视频免费不卡 | 欧美人成免费网站| 成人高清免费在线播放| 天天综合天天做天天综合| 国产丝袜欧美中文另类| 欧美一级黄色大片| 色婷婷综合激情| 大陆成人av片| 久久aⅴ国产欧美74aaa| 尤物在线观看一区| 中文字幕一区二区三区在线不卡 | 国产欧美一区二区精品性| 在线观看日韩高清av| 大白屁股一区二区视频| 精品无人码麻豆乱码1区2区| 亚洲一区二区在线视频| 国产精品第13页| 国产亚洲综合在线| 精品久久久久一区| 欧美日韩国产电影| 欧美色综合网站| 亚洲精品在线观看视频| 欧美日韩成人一区| 色8久久人人97超碰香蕉987| 成人网在线免费视频| 国产乱码一区二区三区| 日韩精品高清不卡| 午夜精品久久一牛影视| 一区二区三区色| 亚洲猫色日本管| 中文字幕一区av| 国产精品女同互慰在线看| 国产欧美一区二区三区在线看蜜臀| 精品国产青草久久久久福利| 欧美一区二区视频免费观看| 这里只有精品电影| 91精品国产91热久久久做人人| 在线91免费看| 在线播放欧美女士性生活| 欧美欧美欧美欧美| 91麻豆精品国产自产在线| 欧美一区二区三区视频| 日韩美女在线视频| 日韩欧美一二三| 久久综合久久鬼色中文字| 精品国产一区二区三区久久影院| 精品国产乱码久久久久久1区2区| 26uuu欧美| 亚洲欧洲av色图| 亚洲国产人成综合网站| 日韩电影免费一区| 九九精品一区二区| 成人国产一区二区三区精品| 色偷偷88欧美精品久久久| 欧美日韩三级一区| 日韩一级大片在线| 久久久蜜桃精品| 中文字幕一区二区三区不卡在线 | 亚洲免费观看高清在线观看| 亚洲资源中文字幕| 久久不见久久见中文字幕免费| 国产精品一区二区你懂的| 高清不卡一区二区| 色婷婷av一区二区三区大白胸| 欧美日韩一区二区三区高清| 日韩免费电影一区| 亚洲欧洲av另类| 日本色综合中文字幕| 国产传媒一区在线| 91精品91久久久中77777| 亚洲精品国产第一综合99久久| 亚洲一二三四区| 美国av一区二区| 色先锋久久av资源部| 日韩欧美国产电影| 亚洲国产经典视频| 午夜精品久久久久久不卡8050| 黑人巨大精品欧美黑白配亚洲| 成人精品免费看| 欧美日韩一区视频| 国产女人18毛片水真多成人如厕| 一区二区三区在线免费| 国产精品影音先锋| 欧美日韩不卡在线| 国产精品家庭影院| 麻豆精品视频在线观看视频| 色国产综合视频| 国产欧美日韩卡一| 日韩欧美www| 亚洲综合丁香婷婷六月香| 国产一区二区看久久| 欧美日韩在线播放三区四区| 久久综合丝袜日本网| 亚洲成人777| 色婷婷综合久久久中文一区二区| 精品国产91亚洲一区二区三区婷婷| 成人免费视频在线观看| 激情成人午夜视频| 在线综合亚洲欧美在线视频| **欧美大码日韩| 成人晚上爱看视频| 精品99久久久久久| 婷婷开心激情综合| 日本精品一区二区三区四区的功能| 久久久久成人黄色影片| 精品一区二区三区免费毛片爱| 欧美人体做爰大胆视频| 亚洲一区二区三区视频在线播放 | 色激情天天射综合网| 国产亚洲精品福利| 另类人妖一区二区av| 欧美人与禽zozo性伦| 亚洲午夜羞羞片| 色婷婷综合久色| 亚洲精品乱码久久久久| 97精品国产露脸对白| 国产精品嫩草影院av蜜臀| 国产成人午夜片在线观看高清观看| 精品少妇一区二区三区免费观看| 久久精品国产一区二区三| 欧美一级夜夜爽| 久久国产综合精品| 久久久久久日产精品| 国产精品综合一区二区三区|