[SXT][WY]Hibernate01 入门实例

xiaoxiao2026-09-16  3

1、写hibernate的配置文件hibernate.cfg.xml,包含数据库相关信息

 

<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration> <session-factory>  <property name="hibernate.connection.url">jdbc:mysql://localhost/hibernate_first</property>  <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>  <property name="hibernate.connection.username">root</property>  <property name="hibernate.connection.password">1234</property>  <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>   <property name="hibernate.show_sql">true</property> // console 输出sql语句   <property name="hibernate.hbm2ddl.auto">update</property> // 作用于5中的工具类,没变化的表不重新更新

  <mapping resource="com/bjsxt/hibernate/User.hbm.xml"/> // 后加入 </session-factory></hibernate-configuration>

 

配置log4j(最后有源码)

 

2、写实体类

 

 import java.util.Date;

public class User {  private String id;  private String name;  private String password;  private Date createTime;  private Date expireTime;

 ...

}

 

3、写类的映射文件User.hbml.xml

 

<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC  "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="com.bjsxt.hibernate.User">  <id name="id">   <generator class="uuid"/>  </id>  <property name="name"/>  <property name="password"/>  <property name="createTime"/>  <property name="expireTime"/> </class> </hibernate-mapping>

 

4、将User.hbml.xml文件加入到hibernate.cfg.xml文件中

 

5、编写hbm2ddl工具类,将实体类生成数据库表

 

import org.hibernate.cfg.Configuration;import org.hibernate.tool.hbm2ddl.SchemaExport;

public class ExportDB { public static void main(String[] args) {  Configuration cfg = new Configuration().configure();// 加入configure()表示读取.xml格式的配置文件  SchemaExport export = new SchemaExport(cfg);// 工具类,通过类生成表  export.create(true, true); // param1:print DDL to console   param2:export script to database }}

6、开发客户端

 

import java.util.Date;

import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;

public class Client {

 public static void main(String[] args) {  Configuration cfg = new Configuration().configure();

  // 重量级对象  SessionFactory factory = cfg.buildSessionFactory();  Session session = null;  try {

   // 这里的open并不代表打开一个connection。在需要时,会到连接池里拿connection   session = factory.openSession();      User user = new User();   user.setName("Jack");   user.setPassword("123");   user.setCreateTime(new Date());   user.setExpireTime(new Date());      session.beginTransaction();      session.save(user);      session.getTransaction().commit();     } catch (Exception e) {   e.printStackTrace();   session.getTransaction().rollback();  } finally {   if (session != null) {    if (session.isOpen()) {     session.close();    }   }  } }

}

 

附1:hibernate 摸版

 

######################### Query Language #########################

## define query language constants / function names

hibernate.query.substitutions yes 'Y', no 'N'

## select the classic query parser

#hibernate.query.factory_class org.hibernate.hql.classic.ClassicQueryTranslatorFactory

 

#################### Platforms ####################

## JNDI Datasource

#hibernate.connection.datasource jdbc/test#hibernate.connection.username db2#hibernate.connection.password db2

## HypersonicSQL

hibernate.dialect org.hibernate.dialect.HSQLDialecthibernate.connection.driver_class org.hsqldb.jdbcDriverhibernate.connection.username sahibernate.connection.passwordhibernate.connection.url jdbc:hsqldb:./build/db/hsqldb/hibernate#hibernate.connection.url jdbc:hsqldb:hsql://localhost#hibernate.connection.url jdbc:hsqldb:test

## H2 (www.h2database.com)#hibernate.dialect org.hibernate.dialect.H2Dialect#hibernate.connection.driver_class org.h2.Driver#hibernate.connection.username sa#hibernate.connection.password#hibernate.connection.url jdbc:h2:mem:./build/db/h2/hibernate#hibernate.connection.url jdbc:h2:testdb/h2test#hibernate.connection.url jdbc:h2:mem:imdb1#hibernate.connection.url jdbc:h2:tcp://dbserv:8084/sample;  #hibernate.connection.url jdbc:h2:ssl://secureserv:8085/sample;  #hibernate.connection.url jdbc:h2:ssl://secureserv/testdb;cipher=AES

## MySQL

#hibernate.dialect org.hibernate.dialect.MySQLDialect#hibernate.dialect org.hibernate.dialect.MySQLInnoDBDialect#hibernate.dialect org.hibernate.dialect.MySQLMyISAMDialect#hibernate.connection.driver_class com.mysql.jdbc.Driver#hibernate.connection.url jdbc:mysql:///test#hibernate.connection.username gavin#hibernate.connection.password

## Oracle

#hibernate.dialect org.hibernate.dialect.OracleDialect#hibernate.dialect org.hibernate.dialect.Oracle9Dialect#hibernate.connection.driver_class oracle.jdbc.driver.OracleDriver#hibernate.connection.username ora#hibernate.connection.password ora#hibernate.connection.url jdbc:oracle:thin:@localhost:1521:orcl#hibernate.connection.url jdbc:oracle:thin:@localhost:1522:XE

## PostgreSQL

#hibernate.dialect org.hibernate.dialect.PostgreSQLDialect#hibernate.connection.driver_class org.postgresql.Driver#hibernate.connection.url jdbc:postgresql:template1#hibernate.connection.username pg#hibernate.connection.password

## DB2

#hibernate.dialect org.hibernate.dialect.DB2Dialect#hibernate.connection.driver_class com.ibm.db2.jcc.DB2Driver#hibernate.connection.driver_class COM.ibm.db2.jdbc.app.DB2Driver#hibernate.connection.url jdbc:db2://localhost:50000/somename#hibernate.connection.url jdbc:db2:somename#hibernate.connection.username db2#hibernate.connection.password db2

## TimesTen

#hibernate.dialect org.hibernate.dialect.TimesTenDialect#hibernate.connection.driver_class com.timesten.jdbc.TimesTenDriver#hibernate.connection.url jdbc:timesten:direct:test#hibernate.connection.username#hibernate.connection.password

## DB2/400

#hibernate.dialect org.hibernate.dialect.DB2400Dialect#hibernate.connection.username user#hibernate.connection.password password

## Native driver#hibernate.connection.driver_class COM.ibm.db2.jdbc.app.DB2Driver#hibernate.connection.url jdbc:db2://systemname

## Toolbox driver#hibernate.connection.driver_class com.ibm.as400.access.AS400JDBCDriver#hibernate.connection.url jdbc:as400://systemname

## Derby (not supported!)

#hibernate.dialect org.hibernate.dialect.DerbyDialect#hibernate.connection.driver_class org.apache.derby.jdbc.EmbeddedDriver#hibernate.connection.username#hibernate.connection.password#hibernate.connection.url jdbc:derby:build/db/derby/hibernate;create=true

## Sybase

#hibernate.dialect org.hibernate.dialect.SybaseDialect#hibernate.connection.driver_class com.sybase.jdbc2.jdbc.SybDriver#hibernate.connection.username sa#hibernate.connection.password sasasa#hibernate.connection.url jdbc:sybase:Tds:co3061835-a:5000/tempdb

## Mckoi SQL

#hibernate.dialect org.hibernate.dialect.MckoiDialect#hibernate.connection.driver_class com.mckoi.JDBCDriver#hibernate.connection.url jdbc:mckoi:///#hibernate.connection.url jdbc:mckoi:local://C:/mckoi1.0.3/db.conf#hibernate.connection.username admin#hibernate.connection.password nimda

## SAP DB

#hibernate.dialect org.hibernate.dialect.SAPDBDialect#hibernate.connection.driver_class com.sap.dbtech.jdbc.DriverSapDB#hibernate.connection.url jdbc:sapdb://localhost/TST#hibernate.connection.username TEST#hibernate.connection.password TEST#hibernate.query.substitutions yes 'Y', no 'N'

## MS SQL Server

#hibernate.dialect org.hibernate.dialect.SQLServerDialect#hibernate.connection.username sa#hibernate.connection.password sa

## JSQL Driver#hibernate.connection.driver_class com.jnetdirect.jsql.JSQLDriver#hibernate.connection.url jdbc:JSQLConnect://1E1/test

## JTURBO Driver#hibernate.connection.driver_class com.newatlanta.jturbo.driver.Driver#hibernate.connection.url jdbc:JTurbo://1E1:1433/test

## WebLogic Driver#hibernate.connection.driver_class weblogic.jdbc.mssqlserver4.Driver#hibernate.connection.url jdbc:weblogic:mssqlserver4:1E1:1433

## Microsoft Driver (not recommended!)#hibernate.connection.driver_class com.microsoft.jdbc.sqlserver.SQLServerDriver#hibernate.connection.url jdbc:microsoft:sqlserver://1E1;DatabaseName=test;SelectMethod=cursor

## The New Microsoft Driver #hibernate.connection.driver_class com.microsoft.sqlserver.jdbc.SQLServerDriver#hibernate.connection.url jdbc:sqlserver://localhost

## jTDS (since version 0.9)#hibernate.connection.driver_class net.sourceforge.jtds.jdbc.Driver#hibernate.connection.url jdbc:jtds:sqlserver://1E1/test

## Interbase

#hibernate.dialect org.hibernate.dialect.InterbaseDialect#hibernate.connection.username sysdba#hibernate.connection.password masterkey

## DO NOT specify hibernate.connection.sqlDialect

## InterClient

#hibernate.connection.driver_class interbase.interclient.Driver#hibernate.connection.url jdbc:interbase://localhost:3060/C:/firebird/test.gdb

## Pure Java

#hibernate.connection.driver_class org.firebirdsql.jdbc.FBDriver#hibernate.connection.url jdbc:firebirdsql:localhost/3050:/firebird/test.gdb

## Pointbase

#hibernate.dialect org.hibernate.dialect.PointbaseDialect#hibernate.connection.driver_class com.pointbase.jdbc.jdbcUniversalDriver#hibernate.connection.url jdbc:pointbase:embedded:sample#hibernate.connection.username PBPUBLIC#hibernate.connection.password PBPUBLIC

## Ingres

#hibernate.dialect org.hibernate.dialect.IngresDialect #hibernate.connection.driver_class ca.edbc.jdbc.EdbcDriver #hibernate.connection.url jdbc:edbc://localhost:II7/database #hibernate.connection.username user #hibernate.connection.password password

## Mimer SQL

#hibernate.dialect org.hibernate.dialect.MimerSQLDialect#hibernate.connection.driver_class com.mimer.jdbc.Driver#hibernate.connection.url jdbc:mimer:multi1#hibernate.connection.username hibernate#hibernate.connection.password hibernate

 

#################################### Hibernate Connection Pool ####################################

hibernate.connection.pool_size 1

 

############################## C3P0 Connection Pool##############################

#hibernate.c3p0.max_size 2#hibernate.c3p0.min_size 2#hibernate.c3p0.timeout 5000#hibernate.c3p0.max_statements 100#hibernate.c3p0.idle_test_period 3000#hibernate.c3p0.acquire_increment 2#hibernate.c3p0.validate false

 

################################# Proxool Connection Pool#################################

## Properties for external configuration of Proxool

hibernate.proxool.pool_alias pool1

## Only need one of the following

#hibernate.proxool.existing_pool true#hibernate.proxool.xml proxool.xml#hibernate.proxool.properties proxool.properties

 

#################################### Plugin ConnectionProvider ####################################

## use a custom ConnectionProvider (if not set, Hibernate will choose a built-in ConnectionProvider using hueristics)

#hibernate.connection.provider_class org.hibernate.connection.DriverManagerConnectionProvider#hibernate.connection.provider_class org.hibernate.connection.DatasourceConnectionProvider#hibernate.connection.provider_class org.hibernate.connection.C3P0ConnectionProvider#hibernate.connection.provider_class org.hibernate.connection.ProxoolConnectionProvider

 

########################## Transaction API ##########################

## Enable automatic flush during the JTA beforeCompletion() callback## (This setting is relevant with or without the Transaction API)

#hibernate.transaction.flush_before_completion

## Enable automatic session close at the end of transaction## (This setting is relevant with or without the Transaction API)

#hibernate.transaction.auto_close_session

## the Transaction API abstracts application code from the underlying JTA or JDBC transactions

#hibernate.transaction.factory_class org.hibernate.transaction.JTATransactionFactory#hibernate.transaction.factory_class org.hibernate.transaction.JDBCTransactionFactory

## to use JTATransactionFactory, Hibernate must be able to locate the UserTransaction in JNDI## default is java:comp/UserTransaction## you do NOT need this setting if you specify hibernate.transaction.manager_lookup_class

#jta.UserTransaction jta/usertransaction#jta.UserTransaction javax.transaction.UserTransaction#jta.UserTransaction UserTransaction

## to use the second-level cache with JTA, Hibernate must be able to obtain the JTA TransactionManager

#hibernate.transaction.manager_lookup_class org.hibernate.transaction.JBossTransactionManagerLookup#hibernate.transaction.manager_lookup_class org.hibernate.transaction.WeblogicTransactionManagerLookup#hibernate.transaction.manager_lookup_class org.hibernate.transaction.WebSphereTransactionManagerLookup#hibernate.transaction.manager_lookup_class org.hibernate.transaction.OrionTransactionManagerLookup#hibernate.transaction.manager_lookup_class org.hibernate.transaction.ResinTransactionManagerLookup

 

################################# Miscellaneous Settings #################################

## print all generated SQL to the console

#hibernate.show_sql true

## format SQL in log and console

hibernate.format_sql true

## add comments to the generated SQL

#hibernate.use_sql_comments true

## generate statistics

#hibernate.generate_statistics true

## auto schema export

#hibernate.hbm2ddl.auto create-drop#hibernate.hbm2ddl.auto create#hibernate.hbm2ddl.auto update#hibernate.hbm2ddl.auto validate

## specify a default schema and catalog for unqualified tablenames

#hibernate.default_schema test#hibernate.default_catalog test

## enable ordering of SQL UPDATEs by primary key

#hibernate.order_updates true

## set the maximum depth of the outer join fetch tree

hibernate.max_fetch_depth 1

## set the default batch size for batch fetching

#hibernate.default_batch_fetch_size 8

## rollback generated identifier values of deleted entities to default values

#hibernate.use_identifer_rollback true

## enable bytecode reflection optimizer (disabled by default)

#hibernate.bytecode.use_reflection_optimizer true

 

######################## JDBC Settings ########################

## specify a JDBC isolation level

#hibernate.connection.isolation 4

## enable JDBC autocommit (not recommended!)

#hibernate.connection.autocommit true

## set the JDBC fetch size

#hibernate.jdbc.fetch_size 25

## set the maximum JDBC 2 batch size (a nonzero value enables batching)

#hibernate.jdbc.batch_size 5#hibernate.jdbc.batch_size 0

## enable batch updates even for versioned data

hibernate.jdbc.batch_versioned_data true

## enable use of JDBC 2 scrollable ResultSets (specifying a Dialect will cause Hibernate to use a sensible default)

#hibernate.jdbc.use_scrollable_resultset true

## use streams when writing binary types to / from JDBC

hibernate.jdbc.use_streams_for_binary true

## use JDBC 3 PreparedStatement.getGeneratedKeys() to get the identifier of an inserted row

#hibernate.jdbc.use_get_generated_keys false

## choose a custom JDBC batcher

# hibernate.jdbc.factory_class

## enable JDBC result set column alias caching ## (minor performance enhancement for broken JDBC drivers)

# hibernate.jdbc.wrap_result_sets

## choose a custom SQL exception converter

#hibernate.jdbc.sql_exception_converter

 

############################# Second-level Cache #############################

## optimize chache for minimal "puts" instead of minimal "gets" (good for clustered cache)

#hibernate.cache.use_minimal_puts true

## set a prefix for cache region names

hibernate.cache.region_prefix hibernate.test

## disable the second-level cache

#hibernate.cache.use_second_level_cache false

## enable the query cache

#hibernate.cache.use_query_cache true

## store the second-level cache entries in a more human-friendly format

#hibernate.cache.use_structured_entries true

## choose a cache implementation

#hibernate.cache.provider_class org.hibernate.cache.EhCacheProvider#hibernate.cache.provider_class org.hibernate.cache.EmptyCacheProviderhibernate.cache.provider_class org.hibernate.cache.HashtableCacheProvider#hibernate.cache.provider_class org.hibernate.cache.TreeCacheProvider#hibernate.cache.provider_class org.hibernate.cache.OSCacheProvider#hibernate.cache.provider_class org.hibernate.cache.SwarmCacheProvider

## choose a custom query cache implementation

#hibernate.cache.query_cache_factory

 

############### JNDI ###############

## specify a JNDI name for the SessionFactory

#hibernate.session_factory_name hibernate/session_factory

## Hibernate uses JNDI to bind a name to a SessionFactory and to look up the JTA UserTransaction;## if hibernate.jndi.* are not specified, Hibernate will use the default InitialContext() which## is the best approach in an application server

#file system#hibernate.jndi.class com.sun.jndi.fscontext.RefFSContextFactory#hibernate.jndi.url file:/

#WebSphere#hibernate.jndi.class com.ibm.websphere.naming.WsnInitialContextFactory#hibernate.jndi.url iiop://localhost:900/

 

 

附2 log4j 摸版

 

### direct log messages to stdout ###log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target=System.outlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### direct messages to file hibernate.log ####log4j.appender.file=org.apache.log4j.FileAppender#log4j.appender.file.File=hibernate.log#log4j.appender.file.layout=org.apache.log4j.PatternLayout#log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### set log levels - for more verbose logging change 'info' to 'debug' ###

log4j.rootLogger=warn, stdout

#log4j.logger.org.hibernate=infolog4j.logger.org.hibernate=debug

### log HQL query parser activity#log4j.logger.org.hibernate.hql.ast.AST=debug

### log just the SQL#log4j.logger.org.hibernate.SQL=debug

### log JDBC bind parameters ###log4j.logger.org.hibernate.type=info#log4j.logger.org.hibernate.type=debug

### log schema export/update ###log4j.logger.org.hibernate.tool.hbm2ddl=debug

### log HQL parse trees#log4j.logger.org.hibernate.hql=debug

### log cache activity ####log4j.logger.org.hibernate.cache=debug

### log transaction activity#log4j.logger.org.hibernate.transaction=debug

### log JDBC resource acquisition#log4j.logger.org.hibernate.jdbc=debug

### enable the following line if you want to track down connection ###### leakages when using DriverManagerConnectionProvider ####log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace

相关资源:mikrotik SXT 网桥点对点安装
转载请注明原文地址: https://www.6miu.com/read-5052750.html

最新回复(0)