📄 environment.java
字号:
//$Id: Environment.java,v 1.18.2.26 2004/02/04 18:56:45 oneovthafew Exp $package net.sf.hibernate.cfg;import java.io.IOException;import java.io.InputStream;import java.sql.Connection;import java.sql.Statement;import java.sql.Timestamp;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Properties;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import net.sf.hibernate.util.PropertiesHelper;/** * Provides access to configuration info passed in <tt>Properties</tt> objects. * <br><br> * Hibernate has two property scopes: * <ul> * <li><b>Factory-level</b> properties may be passed to the <tt>SessionFactory</tt> when it * instantiated. Each instance might have different property values. If no * properties are specified, the factory calls <tt>Environment.getProperties()</tt>. * <li><b>System-level</b> properties are shared by all factory instances and are always * determined by the <tt>Environment</tt> properties. * </ul> * The only system-level properties are * <ul> * <li><tt>hibernate.jdbc.use_streams_for_binary</tt> * <li><tt>hibernate.cglib.use_reflection_optimizer</tt> * </ul> * <tt>Environment</tt> properties are populated by calling <tt>System.getProperties()</tt> * and then from a resource named <tt>/hibernate.properties</tt> if it exists. System * properties override properties specified in <tt>hibernate.properties</tt>.<br> * <br> * The <tt>SessionFactory</tt> is controlled by the following properties. * Properties may be either be <tt>System</tt> properties, properties * defined in a resource named <tt>/hibernate.properties</tt> or an instance of * <tt>java.util.Properties</tt> passed to * <tt>Configuration.buildSessionFactory()</tt><br> * <br> * <table> * <tr><td><b>property</b></td><td><b>meaning</b></td></tr> * <tr> * <td><tt>hibernate.dialect</tt></td> * <td>classname of <tt>net.sf.hibernate.dialect.Dialect</tt> subclass</td> * </tr> * <tr> * <td><tt>hibernate.cache.provider_class</tt></td> * <td>classname of <tt>net.sf.hibernate.cache.CacheProvider</tt> * subclass (if not specified JCS is used)</td> * </tr> * <tr> * <td><tt>hibernate.connection.provider_class</tt></td> * <td>classname of <tt>net.sf.hibernate.connection.ConnectionProvider</tt> * subclass (if not specified hueristics are used)</td> * </tr> * <tr><td><tt>hibernate.connection.username</tt></td><td>database username</td></tr> * <tr><td><tt>hibernate.connection.password</tt></td><td>database password</td></tr> * <tr> * <td><tt>hibernate.connection.url</tt></td> * <td>JDBC URL (when using <tt>java.sql.DriverManager</tt>)</td> * </tr> * <tr> * <td><tt>hibernate.connection.driver_class</tt></td> * <td>classname of JDBC driver</td> * </tr> * <tr> * <td><tt>hibernate.connection.isolation</tt></td> * <td>JDBC transaction isolation level (only when using * <tt>java.sql.DriverManager</tt>) * </td> * </tr> * <td><tt>hibernate.connection.pool_size</tt></td> * <td>the maximum size of the connection pool (only when using * <tt>java.sql.DriverManager</tt>) * </td> * </tr> * <tr> * <td><tt>hibernate.connection.datasource</tt></td> * <td>databasource JNDI name (when using <tt>javax.sql.Datasource</tt>)</td> * </tr> * <tr> * <td><tt>hibernate.jndi.url</tt></td><td>JNDI <tt>InitialContext</tt> URL</td> * </tr> * <tr> * <td><tt>hibernate.jndi.class</tt></td><td>JNDI <tt>InitialContext</tt> classname</td> * </tr> * <tr> * <td><tt>hibernate.max_fetch_depth</tt></td> * <td>maximum depth of outer join fetching</td> * </tr> * <tr> * <td><tt>hibernate.jdbc.batch_size</tt></td> * <td>enable use of JDBC2 batch API for drivers which support it</td> * </tr> * <tr> * <td><tt>hibernate.jdbc.fetch_size</tt></td> * <td>set the JDBC fetch size</td> * </tr> * <tr> * <td><tt>hibernate.jdbc.use_scrollable_resultset</tt></td> * <td>enable use of JDBC2 scrollable resultsets (you only need this specify * this property when using user supplied connections)</td> * </tr> * <tr> * <td><tt>hibernate.jdbc.use_getGeneratedKeys</tt></td> * <td>enable use of JDBC3 PreparedStatement.getGeneratedKeys() to retrieve * natively generated keys after insert. Requires JDBC3+ driver and JRE1.4+</td> * </tr> * <tr> * <td><tt>hibernate.hbm2ddl.auto</tt></td> * <td>enable auto DDL export</td> * </tr> * <tr> * <td><tt>hibernate.default_schema</tt></td> * <td>use given schema name for unqualified tables (always optional)</td> * </tr> * <tr> * <td><tt>hibernate.session_factory_name</tt></td> * <td>If set, the factory attempts to bind this name to itself in the * JNDI context. This name is also used to support cross JVM <tt> * Session</tt> (de)serialization.</td> * </tr> * <tr> * <td><tt>hibernate.transaction.manager_lookup_class</tt></td> * <td>classname of <tt>net.sf.hibernate.transaction.TransactionManagerLookup</tt> * implementor</td> * </tr> * <tr> * <td><tt>hibernate.transaction.factory_class</tt></td> * <td>the factory to use for instantiating <tt>Transaction</tt>s. * (Defaults to <tt>JDBCTransactionFactory</tt>.)</td> * </tr> * <tr> * <td><tt>hibernate.query.substitutions</tt></td><td>query language token substitutions</td> * </tr> * </table> * * @see net.sf.hibernate.SessionFactory * @author Gavin King */public final class Environment { public static final String VERSION = "2.1.2"; /** * <tt>ConnectionProvider</tt> implementor to use when obtaining connections */ public static final String CONNECTION_PROVIDER ="hibernate.connection.provider_class"; /** * JDBC driver class */ public static final String DRIVER ="hibernate.connection.driver_class"; /** * JDBC transaction isolation level */ public static final String ISOLATION ="hibernate.connection.isolation"; /** * JDBC URL */ public static final String URL ="hibernate.connection.url"; /** * JDBC user */ public static final String USER ="hibernate.connection.username"; /** * JDBC password */ public static final String PASS ="hibernate.connection.password"; /** * Maximum number of inactive connections for Hibernate's connection pool */ public static final String POOL_SIZE ="hibernate.connection.pool_size"; /** * <tt>java.sql.Datasource</tt> JNDI name */ public static final String DATASOURCE ="hibernate.connection.datasource"; /** * prefix for arbitrary JDBC connection properties */ public static final String CONNECTION_PREFIX = "hibernate.connection"; /** * Maximum size for Hibernate's statement cache * * @deprecated Hibernate no longer has a built-in prepared statement cache */ public static final String STATEMENT_CACHE_SIZE ="hibernate.statement_cache.size"; /** * JNDI initial context class, <tt>Context.INITIAL_CONTEXT_FACTORY</tt> */ public static final String JNDI_CLASS ="hibernate.jndi.class"; /** * JNDI provider URL, <tt>Context.PROVIDER_URL</tt> */ public static final String JNDI_URL ="hibernate.jndi.url"; /** * prefix for arbitrary JNDI <tt>InitialContext</tt> properties */ public static final String JNDI_PREFIX = "hibernate.jndi"; /** * JNDI name to bind to <tt>SessionFactory</tt> */ public static final String SESSION_FACTORY_NAME = "hibernate.session_factory_name"; /** * Hibernate SQL <tt>Dialect</tt> class */ public static final String DIALECT ="hibernate.dialect"; /** * A default database schema (owner) name to use for unqualified tablenames */ public static final String DEFAULT_SCHEMA = "hibernate.default_schema"; /** * Enable logging of generated SQL to the console */ public static final String SHOW_SQL ="hibernate.show_sql"; /** * Enable deep fetching using outerjoins * @deprecated use <tt>hibernate.max_fetch_depth=0</tt> */ public static final String USE_OUTER_JOIN ="hibernate.use_outer_join"; /** * Maximum depth of outerjoin fetching */ public static final String MAX_FETCH_DEPTH = "hibernate.max_fetch_depth"; /** * Use <tt>java.io</tt> streams to read / write binary data from / to JDBC */ public static final String USE_STREAMS_FOR_BINARY = "hibernate.jdbc.use_streams_for_binary"; /** * Use JDBC scrollable <tt>ResultSet</tt>s. This property is only necessary when there is * no <tt>ConnectionProvider</tt>, ie. the user is supplying JDBC connections. */ public static final String USE_SCROLLABLE_RESULTSET = "hibernate.jdbc.use_scrollable_resultset"; /** * Gives the JDBC driver a hint as to the number of rows that should be fetched from the database * when more rows are needed. If <tt>0</tt>, JDBC driver default settings will be used. */ public static final String USE_GET_GENERATED_KEYS = "hibernate.jdbc.use_get_generated_keys"; /** * Tells the JDBC driver to attempt to retrieve row Id with the JDBC 3.0 PreparedStatement.getGeneratedKeys() * method. In general, performance will be better if this property is set to true and the underlying * JDBC driver supports getGeneratedKeys(). */ public static final String STATEMENT_FETCH_SIZE = "hibernate.jdbc.fetch_size"; /** * Maximum JDBC batch size. A nonzero value enables batch updates. */ public static final String STATEMENT_BATCH_SIZE = "hibernate.jdbc.batch_size"; /** * An XSLT resource used to generate "custom" XML */ public static final String OUTPUT_STYLESHEET ="hibernate.xml.output_stylesheet"; /** * Maximum size of C3P0 connection pool */ public static final String C3P0_MAX_SIZE = "hibernate.c3p0.max_size"; /** * Minimum size of C3P0 connection pool */ public static final String C3P0_MIN_SIZE = "hibernate.c3p0.min_size"; /** * Maximum idle time for C3P0 connection pool */ public static final String C3P0_TIMEOUT = "hibernate.c3p0.timeout"; /** * Maximum size of C3P0 statement cache */ public static final String C3P0_MAX_STATEMENTS = "hibernate.c3p0.max_statements"; /** * Number of connections acquired when pool is exhausted */ public static final String C3P0_ACQUIRE_INCREMENT = "hibernate.c3p0.acquire_increment"; /** * Idle time before a C3P0 pooled connection is validated */ public static final String C3P0_IDLE_TEST_PERIOD = "hibernate.c3p0.idle_test_period"; /** * Should we validate the connection on checkout. * @deprecated use <tt>C3P0_IDLE_TEST_PERIOD</tt> */ public static final String C3P0_VALIDATE_CONNECTION = "hibernate.c3p0.validate"; /** * Maximum number of checked out connections for DBCP connection pool */ public static final String DBCP_MAXACTIVE = "hibernate.dbcp.maxActive"; /** * Maximum number of idle connections for DBCP connection pool */ public static final String DBCP_MAXIDLE = "hibernate.dbcp.maxIdle"; /** * Maximum idle time for connections in DBCP connection pool (ms) */ public static final String DBCP_MAXWAIT = "hibernate.dbcp.maxWait"; /** * Action to take in case of an exhausted DBCP connection pool ( 0 = fail, 1 = block, 2= grow) */ public static final String DBCP_WHENEXHAUSTED = "hibernate.dbcp.whenExhaustedAction"; /** * Validate connection when borrowing connection from pool (optional, true or false) */ public static final String DBCP_VALIDATION_ONBORROW = "hibernate.dbcp.testOnBorrow";
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -