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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? databasedataset.java

?? 采用 Java 編寫的數(shù)據(jù)庫系統(tǒng)單元測試程序。
?? JAVA
字號:
/*
 *
 * The DbUnit Database Testing Framework
 * Copyright (C)2002-2004, DbUnit.org
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 */

package org.dbunit.database;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import org.dbunit.dataset.*;

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.*;

/**
 * provides access
      to a database instance as a dataset.

 * @author Manuel Laflamme
 * @version $Revision: 629 $
 * @since Feb 17, 2002
 */
public class DatabaseDataSet extends AbstractDataSet
{

    /**
     * Logger for this class
     */
    private static final Logger logger = LoggerFactory.getLogger(DatabaseDataSet.class);

    private final IDatabaseConnection _connection;
    private final Map _tableMap = new HashMap();
    private List _nameList = null;

    DatabaseDataSet(IDatabaseConnection connection) throws SQLException
    {
        _connection = connection;
    }

    static String getSelectStatement(String schema, ITableMetaData metaData, String escapePattern)
            throws DataSetException
    {
        logger.debug("getSelectStatement(schema=" + schema + ", metaData=" + metaData + ", escapePattern="
                + escapePattern + ") - start");

        Column[] columns = metaData.getColumns();
        Column[] primaryKeys = metaData.getPrimaryKeys();

        // select
        StringBuffer sqlBuffer = new StringBuffer(128);
        sqlBuffer.append("select ");
        for (int i = 0; i < columns.length; i++)
        {
            if (i > 0)
            {
                sqlBuffer.append(", ");
            }
            String columnName = DataSetUtils.getQualifiedName(null,
                    columns[i].getColumnName(), escapePattern);
            sqlBuffer.append(columnName);
        }

        // from
        sqlBuffer.append(" from ");
        sqlBuffer.append(DataSetUtils.getQualifiedName(schema,
                metaData.getTableName(), escapePattern));

        // order by
        for (int i = 0; i < primaryKeys.length; i++)
        {
            if (i == 0)
            {
                sqlBuffer.append(" order by ");
            }
            else
            {
                sqlBuffer.append(", ");
            }
            sqlBuffer.append(DataSetUtils.getQualifiedName(null, primaryKeys[i]
					.getColumnName(), escapePattern));

        }

        return sqlBuffer.toString();
    }

    private String getQualifiedName(String prefix, String name)
    {
        logger.debug("getQualifiedName(prefix=" + prefix + ", name=" + name + ") - start");

        DatabaseConfig config = _connection.getConfig();
        boolean feature = config.getFeature(DatabaseConfig.FEATURE_QUALIFIED_TABLE_NAMES);
        if (feature)
        {
            return DataSetUtils.getQualifiedName(prefix, name);
        }
        return name;
    }

    /**
     * Get all the table names form the database that are not system tables.
     */
    private void initialize() throws DataSetException
    {
        logger.debug("initialize() - start");

        if (_nameList != null)
        {
            return;
        }

        try
        {
            Connection jdbcConnection = _connection.getConnection();
            String schema = _connection.getSchema();
            String[] tableType = (String[])_connection.getConfig().getProperty(
                    DatabaseConfig.PROPERTY_TABLE_TYPE);

            DatabaseMetaData databaseMetaData = jdbcConnection.getMetaData();
            ResultSet resultSet = databaseMetaData.getTables(
                    null, schema, "%", tableType);

            try
            {
                List nameList = new ArrayList();
                while (resultSet.next())
                {
                    String schemaName = resultSet.getString(2);
                    String tableName = resultSet.getString(3);

                    // skip oracle 10g recycle bin system tables if enabled
                    if(_connection.getConfig().getFeature(DatabaseConfig.FEATURE_SKIP_ORACLE_RECYCLEBIN_TABLES)) {
                        // Oracle 10g workaround
                        // don't process system tables (oracle recycle bin tables) which
                        // are reported to the application due a bug in the oracle JDBC driver
                        if (tableName.startsWith("BIN$")) continue;	
                    }
                    tableName = getQualifiedName(schemaName, tableName);

                    // prevent table name conflict
                    if (_tableMap.containsKey(tableName.toUpperCase()))
                    {
                        throw new AmbiguousTableNameException(tableName);
                    }
                    nameList.add(tableName);
                    _tableMap.put(tableName.toUpperCase(), null);
                }

                _nameList = nameList;
            }
            finally
            {
                resultSet.close();
            }
        }
        catch (SQLException e)
        {
            throw new DataSetException(e);
        }
    }

    ////////////////////////////////////////////////////////////////////////////
    // AbstractDataSet class

    protected ITableIterator createIterator(boolean reversed)
            throws DataSetException
    {
        logger.debug("createIterator(reversed=" + reversed + ") - start");

        String[] names = getTableNames();
        if (reversed)
        {
            names = DataSetUtils.reverseStringArray(names);
        }

        return new DatabaseTableIterator(names, this);
    }

    ////////////////////////////////////////////////////////////////////////////
    // IDataSet interface

    public String[] getTableNames() throws DataSetException
    {
        logger.debug("getTableNames() - start");

        initialize();

        return (String[])_nameList.toArray(new String[0]);
    }

    public ITableMetaData getTableMetaData(String tableName) throws DataSetException
    {
        logger.debug("getTableMetaData(tableName=" + tableName + ") - start");

        initialize();

        // Verify if table exist in the database
        String upperTableName = tableName.toUpperCase();
        if (!_tableMap.containsKey(upperTableName))
        {
            throw new NoSuchTableException(tableName);
        }

        // Try to find cached metadata
        ITableMetaData metaData = (ITableMetaData)_tableMap.get(upperTableName);
        if (metaData != null)
        {
            return metaData;
        }

        // Search for original database table name
        for (Iterator it = _nameList.iterator(); it.hasNext();)
        {
            String databaseTableName = (String)it.next();
            if (databaseTableName.equalsIgnoreCase(tableName))
            {
                // Create metadata and cache it
                metaData = new DatabaseTableMetaData(
                        databaseTableName, _connection);
                _tableMap.put(upperTableName, metaData);
                break;
            }
        }

        return metaData;
    }

    public ITable getTable(String tableName) throws DataSetException
    {
        logger.debug("getTable(tableName=" + tableName + ") - start");

        initialize();

        try
        {
            ITableMetaData metaData = getTableMetaData(tableName);

            DatabaseConfig config = _connection.getConfig();
            IResultSetTableFactory factory = (IResultSetTableFactory)config.getProperty(
                    DatabaseConfig.PROPERTY_RESULTSET_TABLE_FACTORY);
            return factory.createTable(metaData, _connection);
        }
        catch (SQLException e)
        {
            throw new DataSetException(e);
        }
    }
}













?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美偷拍卡通变态| 久久99精品久久久久久| 樱花影视一区二区| 亚洲色图视频免费播放| 国产精品久久午夜| 中文字幕不卡在线播放| 久久午夜免费电影| 成人毛片老司机大片| 午夜视频久久久久久| 亚洲h在线观看| 性欧美疯狂xxxxbbbb| 日韩电影在线观看网站| 蜜臀久久99精品久久久久宅男| 免费av成人在线| 狠狠色狠狠色综合系列| 欧美色电影在线| 欧美一区午夜精品| 久久久久国色av免费看影院| 欧美激情艳妇裸体舞| 亚洲欧洲色图综合| 亚洲欧美日本韩国| 亚洲精品视频在线观看网站| 亚洲第一搞黄网站| 久久成人精品无人区| 国产激情精品久久久第一区二区| 国产精品一区专区| 久久精品国产**网站演员| 亚洲成人一区二区| 波多野结衣91| 国产乱子伦视频一区二区三区 | 91在线观看一区二区| 国产成人午夜电影网| 大白屁股一区二区视频| kk眼镜猥琐国模调教系列一区二区| 成人一区二区三区中文字幕| 不卡的电影网站| 欧美一区欧美二区| 国产欧美日韩另类视频免费观看 | 成人综合婷婷国产精品久久蜜臀| 国产欧美日韩视频一区二区 | 国产三级精品在线| 久久先锋资源网| 亚洲国产精品99久久久久久久久 | 日本道色综合久久| 男女男精品网站| 国产在线不卡视频| 色婷婷久久久亚洲一区二区三区| 亚洲日韩欧美一区二区在线| 91精品国产综合久久小美女| 欧美性猛交xxxx黑人交| 91精品国产欧美日韩| 中文字幕欧美日韩一区| 日韩精品一二三| 成人动漫一区二区| 日韩欧美一二三区| 亚洲欧美视频在线观看| 激情深爱一区二区| 在线看日本不卡| 国产丝袜在线精品| 日韩不卡免费视频| 91猫先生在线| 国产亚洲一区二区三区在线观看 | 午夜电影久久久| 成人高清视频在线观看| 日韩亚洲欧美一区| 亚洲国产综合色| 99久久99久久精品免费看蜜桃 | 日韩精品一卡二卡三卡四卡无卡| 成人免费看黄yyy456| 日韩欧美国产综合| 亚洲成人7777| 色婷婷久久久亚洲一区二区三区 | 成人精品在线视频观看| 日韩一二在线观看| 午夜精品福利视频网站| 色域天天综合网| 亚洲国产高清在线观看视频| 精品一区二区三区不卡| 欧美一区二区播放| 亚洲国产综合在线| 在线观看亚洲专区| 亚洲欧洲综合另类| 日韩视频一区在线观看| 亚洲小说春色综合另类电影| 色哟哟一区二区三区| 中文字幕一区二区在线观看 | 欧美肥妇bbw| 亚洲综合图片区| 一本久久精品一区二区| 亚洲三级电影网站| 91丨九色丨黑人外教| 国产精品日产欧美久久久久| 国产99久久精品| 中文字幕av一区 二区| 国产精品一二三在| 久久免费偷拍视频| 国产精品伊人色| 国产丝袜欧美中文另类| 懂色av中文字幕一区二区三区| 久久久.com| 成人黄动漫网站免费app| 国产精品美女久久久久aⅴ国产馆| 国产黄色成人av| 国产精品无遮挡| www.亚洲精品| 亚洲最大成人网4388xx| 欧美性大战久久| 日韩av中文字幕一区二区三区| 在线观看日韩一区| 亚洲成av人片一区二区三区| 欧美一区二区三区免费在线看| 日韩精品乱码免费| 精品国产凹凸成av人网站| 国产成人精品一区二区三区四区| 国产免费成人在线视频| av不卡在线观看| 一区二区在线观看免费视频播放| 欧美亚洲一区三区| 日韩黄色片在线观看| 欧美成人福利视频| 粉嫩高潮美女一区二区三区| 自拍偷拍亚洲激情| 欧美三级中文字| 久久成人av少妇免费| 国产精品拍天天在线| 日本韩国欧美国产| 日本aⅴ亚洲精品中文乱码| 久久免费看少妇高潮| 99久久伊人网影院| 亚洲成人av资源| 久久一日本道色综合| 91浏览器打开| 免费观看日韩av| 日本一二三不卡| 欧美揉bbbbb揉bbbbb| 国产又黄又大久久| 亚洲人精品一区| 欧美一区二区福利视频| 国产99精品在线观看| 亚洲午夜av在线| 久久久久久久久97黄色工厂| 91网上在线视频| 美腿丝袜亚洲三区| 国产精品全国免费观看高清| 欧美夫妻性生活| 成人精品一区二区三区中文字幕| 亚洲成av人片一区二区三区| 国产日韩欧美在线一区| 欧美日韩一区二区在线观看| 国产成人啪午夜精品网站男同| 亚洲国产视频在线| 国产日韩欧美精品电影三级在线 | 精彩视频一区二区| 自拍偷拍欧美激情| 精品久久久久久久人人人人传媒| 99久久亚洲一区二区三区青草| 日韩av在线免费观看不卡| 欧美激情一区二区在线| 欧美一区日本一区韩国一区| 91蝌蚪国产九色| 国产精品一区在线观看乱码| 婷婷久久综合九色综合伊人色| 国产精品无遮挡| 精品理论电影在线观看| 91极品美女在线| 日本一区二区三区在线观看| 一区二区三区在线观看视频| 全国精品久久少妇| 国产一区二区毛片| 在线免费精品视频| 2020国产成人综合网| 一区二区三区丝袜| 美女被吸乳得到大胸91| 欧美怡红院视频| 国产婷婷色一区二区三区四区| 亚洲午夜精品在线| 波波电影院一区二区三区| 精品毛片乱码1区2区3区| 中文字幕一区二区视频| 国产一区欧美二区| 欧美亚洲国产一区二区三区va| 中文字幕一区二区日韩精品绯色| 美女精品一区二区| 欧美最新大片在线看| 亚洲国产精品成人久久综合一区| 免播放器亚洲一区| 91精品久久久久久久91蜜桃| 久久国产精品无码网站| 亚洲特级片在线| 欧美午夜一区二区三区| 成人黄色免费短视频| 亚洲一区中文日韩| 精品蜜桃在线看| 欧美日韩亚州综合| 麻豆91在线观看| 欧美欧美午夜aⅴ在线观看| 欧美一区二区三区男人的天堂| 一区二区三区在线观看网站| 国产人久久人人人人爽| 久久影院电视剧免费观看|