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

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

?? connectionproviderfactory.java

?? hibernate-3.1.3-all-src.zip 面向對象的訪問數據庫工具
?? JAVA
字號:
//$Id: ConnectionProviderFactory.java 7541 2005-07-18 22:37:31Z epbernard $
package org.hibernate.connection;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Properties;
import java.util.Set;
import java.util.Map;
import java.beans.Introspector;
import java.beans.BeanInfo;
import java.beans.IntrospectionException;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Method;
import java.lang.reflect.InvocationTargetException;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import org.hibernate.HibernateException;
import org.hibernate.cfg.Environment;
import org.hibernate.util.ReflectHelper;

/**
 * Instantiates a connection provider given either <tt>System</tt> properties or
 * a <tt>java.util.Properties</tt> instance. The <tt>ConnectionProviderFactory</tt>
 * first attempts to find a name of a <tt>ConnectionProvider</tt> subclass in the
 * property <tt>hibernate.connection.provider_class</tt>. If missing, heuristics are used
 * to choose either <tt>DriverManagerConnectionProvider</tt>,
 * <tt>DatasourceConnectionProvider</tt>, <tt>C3P0ConnectionProvider</tt> or
 * <tt>DBCPConnectionProvider</tt>.
 * @see ConnectionProvider
 * @author Gavin King
 */

public final class ConnectionProviderFactory {

	private static final Log log = LogFactory.getLog(ConnectionProviderFactory.class);

	/**
	 * Instantiate a <tt>ConnectionProvider</tt> using <tt>System</tt> properties.
	 * @return ConnectionProvider
	 * @throws HibernateException
	 */
	public static ConnectionProvider newConnectionProvider() throws HibernateException {
		return newConnectionProvider( Environment.getProperties() );
	}

	/**
	 * Instantiate a <tt>ConnectionProvider</tt> using given properties.
	 * Method newConnectionProvider.
	 * @param properties hibernate <tt>SessionFactory</tt> properties
	 * @return ConnectionProvider
	 * @throws HibernateException
	 */
	public static ConnectionProvider newConnectionProvider(Properties properties) throws HibernateException {
		return newConnectionProvider( properties, null );
	}

	/**
	 * Instantiate a <tt>ConnectionProvider</tt> using given properties.
	 * Method newConnectionProvider.
	 * @param properties hibernate <tt>SessionFactory</tt> properties
	 * @Param connectionProviderInjectionData object to be injected in the conenction provided
	 * @return ConnectionProvider
	 * @throws HibernateException
	 */
	public static ConnectionProvider newConnectionProvider(Properties properties, Map connectionProviderInjectionData) throws HibernateException {
		ConnectionProvider connections;
		String providerClass = properties.getProperty(Environment.CONNECTION_PROVIDER);
		if ( providerClass!=null ) {
			try {
				log.info("Initializing connection provider: " + providerClass);
				connections = (ConnectionProvider) ReflectHelper.classForName(providerClass).newInstance();
			}
			catch (Exception e) {
				log.fatal("Could not instantiate connection provider", e);
				throw new HibernateException("Could not instantiate connection provider: " + providerClass);
			}
		}
		else if ( properties.getProperty(Environment.DATASOURCE)!=null ) {
			connections = new DatasourceConnectionProvider();
		}
		else if ( properties.getProperty(Environment.C3P0_MAX_SIZE)!=null ) {
			connections = new C3P0ConnectionProvider();
		}
		else if (
			properties.getProperty(Environment.PROXOOL_XML)!=null ||
			properties.getProperty(Environment.PROXOOL_PROPERTIES)!=null ||
			properties.getProperty(Environment.PROXOOL_EXISTING_POOL)!=null
		) {
			connections = new ProxoolConnectionProvider();
		}
		else if ( properties.getProperty(Environment.URL)!=null ) {
			connections = new DriverManagerConnectionProvider();
		}
		else {
			connections = new UserSuppliedConnectionProvider();
		}

		if ( connectionProviderInjectionData != null && connectionProviderInjectionData.size() != 0 ) {
			//inject the data
			try {
				BeanInfo info = Introspector.getBeanInfo( connections.getClass() );
				PropertyDescriptor[] descritors = info.getPropertyDescriptors();
				int size = descritors.length;
				for (int index = 0 ; index < size ; index++) {
					String propertyName = descritors[index].getName();
					if ( connectionProviderInjectionData.containsKey( propertyName ) ) {
						Method method = descritors[index].getWriteMethod();
						method.invoke( connections, new Object[] { connectionProviderInjectionData.get( propertyName ) } );
					}
				}
			}
			catch (IntrospectionException e) {
				throw new HibernateException("Unable to inject objects into the conenction provider", e);
			}
			catch (IllegalAccessException e) {
				throw new HibernateException("Unable to inject objects into the conenction provider", e);
			}
			catch (InvocationTargetException e) {
				throw new HibernateException("Unable to inject objects into the conenction provider", e);
			}
		}
		connections.configure(properties);
		return connections;
	}

	// cannot be instantiated
	private ConnectionProviderFactory() { throw new UnsupportedOperationException(); }

	/**
	 * Transform JDBC connection properties.
	 *
	 * Passed in the form <tt>hibernate.connection.*</tt> to the
	 * format accepted by <tt>DriverManager</tt> by triming the leading "<tt>hibernate.connection</tt>".
	 */
	public static Properties getConnectionProperties(Properties properties) {

		Iterator iter = properties.keySet().iterator();
		Properties result = new Properties();
		while ( iter.hasNext() ) {
			String prop = (String) iter.next();
			if ( prop.indexOf(Environment.CONNECTION_PREFIX) > -1 && !SPECIAL_PROPERTIES.contains(prop) ) {
				result.setProperty(
					prop.substring( Environment.CONNECTION_PREFIX.length()+1 ),
					properties.getProperty(prop)
				);
			}
		}
		String userName = properties.getProperty(Environment.USER);
		if (userName!=null) result.setProperty( "user", userName );
		return result;
	}

	private static final Set SPECIAL_PROPERTIES;
	static {
		SPECIAL_PROPERTIES = new HashSet();
		SPECIAL_PROPERTIES.add(Environment.DATASOURCE);
		SPECIAL_PROPERTIES.add(Environment.URL);
		SPECIAL_PROPERTIES.add(Environment.CONNECTION_PROVIDER);
		SPECIAL_PROPERTIES.add(Environment.POOL_SIZE);
		SPECIAL_PROPERTIES.add(Environment.ISOLATION);
		SPECIAL_PROPERTIES.add(Environment.DRIVER);
		SPECIAL_PROPERTIES.add(Environment.USER);

	}

}






?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久精品国产| 91丨porny丨最新| 亚洲日本在线视频观看| 欧美一区在线视频| 成人免费看的视频| 日韩不卡免费视频| 亚洲视频在线一区观看| 精品国产电影一区二区| 91福利国产成人精品照片| 裸体健美xxxx欧美裸体表演| 亚洲乱码精品一二三四区日韩在线| 日韩免费成人网| 91天堂素人约啪| 国产成人夜色高潮福利影视| 亚洲va中文字幕| 国产精品福利一区| 国产清纯白嫩初高生在线观看91 | 成人美女在线观看| 日本成人在线网站| 香蕉成人啪国产精品视频综合网| 国产精品久久久久aaaa| 久久久久久麻豆| 欧美一区二区视频在线观看2022 | www激情久久| 日韩欧美国产系列| 91麻豆精品国产91久久久久| 91影院在线免费观看| 成人免费看视频| 国产盗摄视频一区二区三区| 麻豆成人久久精品二区三区小说| 日韩成人dvd| 午夜日韩在线观看| 亚洲国产日韩精品| 亚洲一卡二卡三卡四卡五卡| 中文字幕一区二区三区在线不卡 | 精品盗摄一区二区三区| 91精品国产综合久久小美女| 欧美日韩电影一区| 欧美绝品在线观看成人午夜影视 | 欧美国产视频在线| 国产欧美综合色| 国产精品日韩精品欧美在线| 国产免费成人在线视频| 久久久久久久久久久黄色| 欧美mv和日韩mv的网站| 久久只精品国产| 久久免费视频一区| 国产精品乱子久久久久| 中文字幕在线不卡视频| 一区二区三区精品| 亚洲综合色自拍一区| 亚洲电影一区二区三区| 三级不卡在线观看| 麻豆国产精品一区二区三区 | 粉嫩av一区二区三区| 成人一道本在线| 一本久道中文字幕精品亚洲嫩| 91看片淫黄大片一级在线观看| 不卡电影免费在线播放一区| 色8久久精品久久久久久蜜| 日本高清免费不卡视频| 欧美体内she精高潮| 欧美高清视频www夜色资源网| 欧美一级一级性生活免费录像| 555夜色666亚洲国产免| 欧美大白屁股肥臀xxxxxx| 久久影院视频免费| 最近中文字幕一区二区三区| 一区二区三区免费在线观看| 男人的天堂亚洲一区| 国产激情视频一区二区在线观看| 91麻豆自制传媒国产之光| 欧美日韩一区二区三区免费看| 欧美日韩另类一区| 国产喂奶挤奶一区二区三区| 亚洲免费观看高清完整版在线| 日本中文字幕一区二区有限公司| 国产乱子轮精品视频| 色播五月激情综合网| 欧美精选在线播放| 久久久久国产精品麻豆| 亚洲精品高清视频在线观看| 老鸭窝一区二区久久精品| 国产精品亚洲一区二区三区妖精| 色系网站成人免费| 精品播放一区二区| 亚洲久草在线视频| 国产一区二区在线观看视频| 日本丶国产丶欧美色综合| 精品日韩成人av| 一区二区三区不卡视频在线观看 | 中文字幕在线不卡| 欧美aaaaa成人免费观看视频| 成人高清视频在线观看| 欧美午夜精品一区二区蜜桃| 精品欧美一区二区久久| 亚洲精品高清视频在线观看| 国产成人精品一区二区三区网站观看| 欧洲亚洲国产日韩| 国产精品成人免费在线| 久久99九九99精品| 69堂精品视频| 亚洲黄色免费网站| 成人h动漫精品一区二区| 欧美一区二区人人喊爽| 亚洲免费观看高清| 成人免费高清视频在线观看| 日韩精品一区二区三区蜜臀 | 成人夜色视频网站在线观看| 91精品国产综合久久精品麻豆| 亚洲色欲色欲www| 大白屁股一区二区视频| 精品精品欲导航| 日日骚欧美日韩| 欧美最猛性xxxxx直播| 1区2区3区精品视频| 国产黑丝在线一区二区三区| 欧美一级理论性理论a| 一区二区理论电影在线观看| 99在线精品视频| 国产欧美日韩卡一| 国产凹凸在线观看一区二区| 精品粉嫩aⅴ一区二区三区四区| 日本最新不卡在线| 欧美猛男gaygay网站| 一区二区三区四区中文字幕| 波多野结衣在线一区| 中文字幕精品一区二区精品绿巨人 | 精品久久国产字幕高潮| 免费成人美女在线观看| 678五月天丁香亚洲综合网| 亚洲777理论| 欧美日韩的一区二区| 日韩综合小视频| 3d动漫精品啪啪1区2区免费| 日韩高清不卡在线| 91精品午夜视频| 免费一级欧美片在线观看| 91精品国产综合久久香蕉麻豆| 日日夜夜一区二区| 欧美一级片在线看| 久久国产精品72免费观看| 精品久久久久久久久久久久久久久久久| 日韩国产在线观看| 日韩三级视频在线看| 美洲天堂一区二卡三卡四卡视频| 日韩一区二区三区四区| 久久不见久久见中文字幕免费| 日韩精品专区在线| 国产一区 二区| 国产精品久久久久久久久免费樱桃 | 精品久久人人做人人爽| 精品综合久久久久久8888| 久久精品视频免费| 91免费看片在线观看| 亚洲第一成年网| 精品91自产拍在线观看一区| 国产麻豆精品在线| 亚洲免费观看高清| 日韩亚洲欧美一区二区三区| 国产一区二区三区观看| 国产精品久久久久久久久图文区| 色婷婷av一区二区三区软件| 午夜精品久久久久久久99樱桃| 日韩欧美自拍偷拍| www.色综合.com| 性做久久久久久免费观看 | 亚洲综合自拍偷拍| 欧美一区二区三区免费在线看| 久久99热99| 亚洲欧洲精品一区二区三区| 欧美精品日韩一区| 国产在线国偷精品产拍免费yy| 国产精品国产馆在线真实露脸| 欧美日韩视频一区二区| 国产伦理精品不卡| 夜夜嗨av一区二区三区网页| 精品欧美黑人一区二区三区| av午夜精品一区二区三区| 日韩av一区二| 国产精品久久久久精k8| 欧美一区二区三区白人| 高清成人在线观看| 午夜久久福利影院| 国产精品视频九色porn| 欧美一区三区四区| 一本色道久久综合精品竹菊| 美女精品一区二区| 一区二区视频在线| 久久综合久久综合久久综合| 欧洲人成人精品| 岛国av在线一区| 久久国产尿小便嘘嘘| 亚洲精品福利视频网站| 欧美韩国日本不卡| 欧美一级爆毛片| 欧美在线观看一二区| www.av亚洲| 国产在线精品一区二区不卡了| 午夜久久久久久|