⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 settingsfactory.java

📁 人力资源管理系统 系统把几乎所有与人力资源相关的数据统一管理
💻 JAVA
字号:
//$Id: SettingsFactory.java,v 1.1.2.15 2004/02/04 18:56:45 oneovthafew Exp $package net.sf.hibernate.cfg;import java.sql.Connection;import java.sql.DatabaseMetaData;import java.sql.ResultSet;import java.sql.SQLException;import java.util.Map;import java.util.Properties;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import net.sf.hibernate.HibernateException;import net.sf.hibernate.cache.CacheProvider;import net.sf.hibernate.connection.ConnectionProvider;import net.sf.hibernate.connection.ConnectionProviderFactory;import net.sf.hibernate.dialect.Dialect;import net.sf.hibernate.dialect.GenericDialect;import net.sf.hibernate.transaction.TransactionFactory;import net.sf.hibernate.transaction.TransactionFactoryFactory;import net.sf.hibernate.transaction.TransactionManagerLookup;import net.sf.hibernate.transaction.TransactionManagerLookupFactory;import net.sf.hibernate.util.PropertiesHelper;import net.sf.hibernate.util.ReflectHelper;/** * Reads configuration properties and configures a <tt>Settings</tt> instance. *  * @author Gavin King */public final class SettingsFactory {		private static final Log log = LogFactory.getLog(SettingsFactory.class);		public static Settings buildSettings(Properties properties) throws HibernateException {				Settings settings = new Settings();				Dialect dialect;		try {			dialect = Dialect.getDialect(properties);			Properties temp = new Properties();			//temp.putAll( Environment.getProperties() );			temp.putAll( dialect.getDefaultProperties() );			temp.putAll(properties);			properties = temp; // add the dialects default properties		}		catch (HibernateException he) {			log.warn( "No dialect set - using GenericDialect: " + he.getMessage() );			dialect = new GenericDialect();		}				Integer statementFetchSize = PropertiesHelper.getInteger(Environment.STATEMENT_FETCH_SIZE, properties);		if (statementFetchSize!=null) log.info("JDBC result set fetch size: " + statementFetchSize);				Integer maxFetchDepth = PropertiesHelper.getInteger(Environment.MAX_FETCH_DEPTH, properties);		if (maxFetchDepth!=null) log.info("Maximim outer join fetch depth: " + maxFetchDepth);				//deprecated:		boolean useOuterJoin = PropertiesHelper.getBoolean(Environment.USE_OUTER_JOIN, properties);		log.info("Use outer join fetching: " + useOuterJoin);				ConnectionProvider connections = ConnectionProviderFactory.newConnectionProvider(properties);		TransactionFactory transactionFactory = TransactionFactoryFactory.buildTransactionFactory(properties);		TransactionManagerLookup transactionManagerLookup = TransactionManagerLookupFactory.getTransactionManagerLookup(properties);				boolean metaSupportsScrollable = false;		boolean metaSupportsGetGeneratedKeys = false;		int batchSize = PropertiesHelper.getInt(Environment.STATEMENT_BATCH_SIZE, properties, 0);		try {			Connection conn = connections.getConnection();			try {				DatabaseMetaData meta = conn.getMetaData();				metaSupportsScrollable = meta.supportsResultSetType(ResultSet.TYPE_SCROLL_INSENSITIVE);				if ( ( batchSize > 0 ) && !meta.supportsBatchUpdates() ) batchSize = 0;				if ( Environment.jvmSupportsGetGeneratedKeys() ) {					try {						Boolean result = (Boolean) DatabaseMetaData.class.getMethod("supportsGetGeneratedKeys", null).invoke(meta, null);						metaSupportsGetGeneratedKeys = result.booleanValue();					}					catch (AbstractMethodError ame) {						metaSupportsGetGeneratedKeys = false;					}					catch (Exception e) {						metaSupportsGetGeneratedKeys = false;					}				}			}			finally {				connections.closeConnection(conn);			}		}		catch (SQLException sqle) {			log.warn("Could not obtain connection metadata", sqle);		}		catch (UnsupportedOperationException uoe) {			// user supplied JDBC connections		}				boolean useScrollableResultSets = PropertiesHelper.getBoolean(Environment.USE_SCROLLABLE_RESULTSET, properties, metaSupportsScrollable);		log.info("Use scrollable result sets: " + useScrollableResultSets);		boolean useGetGeneratedKeys = PropertiesHelper.getBoolean(Environment.USE_GET_GENERATED_KEYS, properties, metaSupportsGetGeneratedKeys);		log.info("Use JDBC3 getGeneratedKeys(): " + useGetGeneratedKeys);						boolean useMinimalPuts = PropertiesHelper.getBoolean(Environment.USE_MINIMAL_PUTS, properties, false);		log.info("Optimize cache for minimal puts: " + useMinimalPuts);				String defaultSchema = properties.getProperty(Environment.DEFAULT_SCHEMA);		if (defaultSchema!=null) log.info("Default schema set to: " + defaultSchema);				boolean showSql = PropertiesHelper.getBoolean(Environment.SHOW_SQL, properties);		if (showSql) log.info("echoing all SQL to stdout");				Map querySubstitutions = PropertiesHelper.toMap(Environment.QUERY_SUBSTITUTIONS, " ,=;:\n\t\r\f", properties);		log.info("Query language substitutions: " + querySubstitutions);				String autoSchemaExport = properties.getProperty(Environment.HBM2DDL_AUTO);		if ( "update".equals(autoSchemaExport) ) settings.setAutoUpdateSchema(true);		if ( "create".equals(autoSchemaExport) ) settings.setAutoCreateSchema(true);		if ( "create-drop".equals(autoSchemaExport) ) {			settings.setAutoCreateSchema(true);			settings.setAutoDropSchema(true);		}				String cacheClassName = PropertiesHelper.getString(Environment.CACHE_PROVIDER, properties, "net.sf.ehcache.hibernate.Provider");		log.info("cache provider: " + cacheClassName);		try {			settings.setCacheProvider( (CacheProvider) ReflectHelper.classForName(cacheClassName).newInstance() );		}		catch (Exception cnfe) {			throw new HibernateException("could not instantiate CacheProvider: " + cacheClassName, cnfe);		}				boolean useQueryCache = PropertiesHelper.getBoolean(Environment.USE_QUERY_CACHE, properties);				String sessionFactoryName = properties.getProperty(Environment.SESSION_FACTORY_NAME);				settings.setStatementFetchSize(statementFetchSize);		settings.setScrollableResultSetsEnabled(useScrollableResultSets);		settings.setGetGeneratedKeysEnabled(useGetGeneratedKeys);		settings.setJdbcBatchSize(batchSize);		settings.setDefaultSchemaName(defaultSchema);		settings.setShowSqlEnabled(showSql);		settings.setDialect(dialect);		settings.setConnectionProvider(connections);		settings.setQuerySubstitutions(querySubstitutions);		settings.setTransactionFactory(transactionFactory);		settings.setTransactionManagerLookup(transactionManagerLookup);		settings.setSessionFactoryName(sessionFactoryName);		settings.setOuterJoinFetchEnabled(useOuterJoin);		settings.setMaximumFetchDepth(maxFetchDepth);		settings.setQueryCacheEnabled(useQueryCache);		settings.setMinimalPutsEnabled(useMinimalPuts);				return settings;	}		private SettingsFactory() {}	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -