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也可以自動建表
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章