Hibernate也可以自动建表

摘自:http://forum.iteye.com/viewtopic.php?t=176

test.java 
java代码:  


package hibernatedemo; 

import hibernatedemo.person; 
import java.util.*; 

import net.sf.hibernate.Query; 
import net.sf.hibernate.Session; 
import net.sf.hibernate.SessionFactory; 
import net.sf.hibernate.cfg.Configuration; 
import net.sf.hibernate.tool.hbm2ddl.SchemaExport; 

public class Test { 
public static void main(String[] args) throws Exception { 
   Configuration cfg = new Configuration().addClass(person.class); 
   SessionFactory sessions = cfg.buildSessionFactory(); 
   new SchemaExport(cfg).create(true, true); 
   Session s = sessions.openSession(); 
   Query q = s.createQuery("from person"); 
   for (Iterator it = q.iterate();it.hasNext();){ 
     person b = (person)it.next(); 
     System.out.println("##name:"+b.getName()); 
   } 
} 
} 

 

person.java 
java代码:  

package hibernatedemo; 

public class person { 
  private String name; 
  private String address; 
  private String id; 
  public person(){ 

  } 
  public String getId() { 
    return id; 
  } 
  public void setId(String id) { 
    this.id = id; 
  } 
  public String getName() { 
    return name; 
  } 
  public void setName(String name) { 
    this.name = name; 
  } 
  public String getAddress() { 
    return address; 
  } 
  public void setAddress(String address) { 
    this.address = address; 
  } 
}
 

person.hbm.xml 
java代码:  

<?xml version="1.0"?> 

<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 2.0//EN" 
    "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"> 

<hibernate-mapping> 
  <class name="hibernatedemo.person" > 
    <id  name="id" 
         column="id" 
         type="java.lang.String"> 
      <generator 
         class="assigned"/>    
    </id> 
    <property 
         name="name" 
         type="java.lang.String" 
         column="name"/> 
    <property 
         name="address" 
         type="java.lang.String" 
         column="pass"/> 
  </class>        
</hibernate-mapping> 

 

数据库是mysql,服务器tomcat 
执行的时候控制台信息 
java代码:  


2003-9-16 10:36:12 net.sf.hibernate.cfg.Environment <clinit> 

信息: Hibernate 2.1 beta 3 

2003-9-16 10:36:12 net.sf.hibernate.cfg.Environment <clinit> 

信息: loaded properties from resource hibernate.properties: {hibernate.connection.driver_class=com.mysql.jdbc.Driver, hibernate.cglib.use_reflection_optimizer=true, hibernate.dialect=net.sf.hibernate.dialect.MySQLDialect, hibernate.jdbc.use_streams_for_binary=true, hibernate.jdbc.batch_size=0, hibernate.query.substitutions=true 1, false 0, yes 'Y', no 'N', hibernate.query.imports=net.sf.hibernate.test, net.sf.hibernate.eg, hibernate.connection.username=root, hibernate.connection.url=jdbc:mysql://localhost/hibernatedb, hibernate.connection.password=, hibernate.statement_cache.size=25, hibernate.connection.pool_size=1} 

2003-9-16 10:36:12 net.sf.hibernate.cfg.Environment <clinit> 

信息: using java.io streams to persist binary types 

2003-9-16 10:36:12 net.sf.hibernate.cfg.Environment <clinit> 

信息: using CGLIB reflection optimizer 

2003-9-16 10:36:12 net.sf.hibernate.cfg.Configuration addClass 

信息: Mapping resource: hibernatedemo/person.hbm.xml 

2003-9-16 10:36:15 net.sf.hibernate.cfg.Binder bindRootClass 

信息: Mapping class: hibernatedemo.person -> person 

2003-9-16 10:36:15 net.sf.hibernate.cfg.Configuration secondPassCompile 

信息: processing one-to-many association mappings 

2003-9-16 10:36:15 net.sf.hibernate.cfg.Configuration secondPassCompile 

信息: processing one-to-one association property references 

2003-9-16 10:36:15 net.sf.hibernate.cfg.Configuration secondPassCompile 

信息: processing foreign key constraints 

2003-9-16 10:36:15 net.sf.hibernate.dialect.Dialect <init> 

信息: Using dialect: net.sf.hibernate.dialect.MySQLDialect 

2003-9-16 10:36:15 net.sf.hibernate.cfg.SettingsFactory buildSettings 

信息: Use outer join fetching: true 

2003-9-16 10:36:15 net.sf.hibernate.connection.DriverManagerConnectionProvider configure 

信息: Using Hibernate built-in connection pool (not for production use!) 

2003-9-16 10:36:15 net.sf.hibernate.connection.DriverManagerConnectionProvider configure 

信息: Hibernate connection pool size: 1 

2003-9-16 10:36:15 net.sf.hibernate.connection.DriverManagerConnectionProvider configure 

信息: using driver: com.mysql.jdbc.Driver at URL: jdbc:mysql://localhost/hibernatedb 

2003-9-16 10:36:15 net.sf.hibernate.connection.DriverManagerConnectionProvider configure 

信息: connection properties: {user=root, password=} 

2003-9-16 10:36:15 net.sf.hibernate.transaction.TransactionManagerLookupFactory getTransactionManagerLookup 

信息: No TransactionManagerLookup configured (use of process level read-write cache is not recommended) 

2003-9-16 10:36:16 net.sf.hibernate.cfg.SettingsFactory buildSettings 

信息: Use scrollable result sets: true 

2003-9-16 10:36:16 net.sf.hibernate.cfg.SettingsFactory buildSettings 

信息: Query language substitutions: {no='N', true=1, yes='Y', false=0} 

2003-9-16 10:36:16 net.sf.hibernate.cfg.SettingsFactory buildSettings 

信息: cache provider: net.sf.hibernate.cache.JCSCacheProvider 

2003-9-16 10:36:16 net.sf.hibernate.cfg.Configuration configureCaches 

信息: instantiating and configuring caches 

2003-9-16 10:36:16 net.sf.hibernate.impl.SessionFactoryImpl <init> 

信息: building session factory 

2003-9-16 10:36:18 net.sf.hibernate.impl.SessionFactoryObjectFactory addInstance 

信息: no JNDI name configured 

2003-9-16 10:36:18 net.sf.hibernate.dialect.Dialect <init> 

信息: Using dialect: net.sf.hibernate.dialect.MySQLDialect 

2003-9-16 10:36:18 net.sf.hibernate.cfg.Configuration secondPassCompile 

信息: processing one-to-many association mappings 

2003-9-16 10:36:18 net.sf.hibernate.cfg.Configuration secondPassCompile 

信息: processing one-to-one association property references 

2003-9-16 10:36:18 net.sf.hibernate.cfg.Configuration secondPassCompile 

信息: processing foreign key constraints 

2003-9-16 10:36:18 net.sf.hibernate.cfg.Configuration secondPassCompile 

信息: processing one-to-many association mappings 

2003-9-16 10:36:18 net.sf.hibernate.cfg.Configuration secondPassCompile 

信息: processing one-to-one association property references 

2003-9-16 10:36:18 net.sf.hibernate.cfg.Configuration secondPassCompile 

信息: processing foreign key constraints 

2003-9-16 10:36:18 net.sf.hibernate.tool.hbm2ddl.SchemaExport execute 

信息: Running hbm2ddl schema export 

2003-9-16 10:36:18 net.sf.hibernate.tool.hbm2ddl.SchemaExport execute 

信息: exporting generated schema to database 

2003-9-16 10:36:18 net.sf.hibernate.connection.DriverManagerConnectionProvider configure 

信息: Using Hibernate built-in connection pool (not for production use!) 

2003-9-16 10:36:18 net.sf.hibernate.connection.DriverManagerConnectionProvider configure 

信息: Hibernate connection pool size: 1 

2003-9-16 10:36:18 net.sf.hibernate.connection.DriverManagerConnectionProvider configure 

信息: using driver: com.mysql.jdbc.Driver at URL: jdbc:mysql://localhost/hibernatedb 

2003-9-16 10:36:18 net.sf.hibernate.connection.DriverManagerConnectionProvider configure 

信息: connection properties: {user=root, password=} 

drop table person 

create table person ( 
   id VARCHAR(255) not null, 
   name VARCHAR(255), 
   pass VARCHAR(255), 
   primary key (id) 
) 

2003-9-16 10:36:18 net.sf.hibernate.tool.hbm2ddl.SchemaExport execute 

信息: schema export complete 

2003-9-16 10:36:18 net.sf.hibernate.connection.DriverManagerConnectionProvider close 

信息: cleaning up connection pool: jdbc:mysql://localhost/hibernatedb 

2003-9-16 10:36:18 net.sf.hibernate.connection.DriverManagerConnectionProvider close 

信息: cleaning up connection pool: jdbc:mysql://localhost/hibernatedb 
 

posted on 2006-02-08 22:10 TrampEagle 阅读(1442) 评论(2)  编辑  收藏 所属分类: hibernate 
 


Feedback
# re: Hibernate也可以自动建表 2009-02-22 00:41 verysky 
可惜 annotation 做的ORMapping 就不可以   回复  更多评论 
   


# re: Hibernate也可以自动建表 2009-02-22 01:18 verysky 
对不住,annotation 方式的ORMapping 是可以生成表的,我大意了. 
代码需要改进如下: 
AnnotationConfiguration cfg = new AnnotationConfiguration().addAnnotationClass(person.class); 

注意:AnnotationConfiguration的生成方式和事物,不然出不了效果 
Hibernate也可以自动建表 

你可能感兴趣的:(Hibernate,.net,mysql,cache,jdbc)