摘自: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也可以自动建表
分享到:
相关推荐
用hibernate3.5 xml文件映射,junit实现多对多自动建表,下载后解压用myeclipse导入,这里要注意:需要junit的包。这个是学hibernate的关键,建议新手作为重点,大虾就请多多指教了
注释齐全,'零'配置文件 (1)在config中找到db.properties:连接自己的mysql (2)在连接到的mysql中建一个数据库(database):(defaultName:mvcdemo) (3)运行本项目 (4)页面输入 ...
5. **自动建表(Schema Generation)**: Hibernate的`hibernate.hbm2ddl.auto`配置属性决定了在应用启动时如何处理数据库表。设置为`create`会在每次启动时清空并重建表,`update`则只更新表结构以适应新的实体定义...
通过这些注解和配置,开发者可以快速地建立Java对象与数据库表之间的映射,并利用Hibernate自动创建数据库表,大大提高了开发效率。在实际项目中,结合Spring等框架,可以实现更高效、便捷的数据库操作。 在提供的...
综上所述,SSH高质量整合利用Spring的注解简化配置,通过Hibernate的注解实现ORM映射,同时利用Hibernate的自动建表功能,极大地提高了开发效率。项目中的标签注入则优化了视图层的开发,使得整个Web应用的开发流程...
使用Hibernate自动建表功能,可以快速地将设计的实体模型转化为实际的数据库结构,对于快速开发和原型验证非常有帮助。同时,也要注意,虽然自动建表方便,但在生产环境中应谨慎使用,以防止数据丢失。
3. **数据库自动建表语句**:在Hibernate中,可以通过配置使其自动根据映射文件创建数据库表,这对于快速原型开发或测试非常有用。这通常在hibernate.cfg.xml的`hibernate.hbm2ddl.auto`属性中设置,如设为"create...
JPA注解和Hibernate建表 一、JPA概述 Java Persistence API(JPA)是Sun官方提出的Java持久化规范,它只是一个规范不是一个产品。JPA的主要目标是提供一种简洁、易用的方式来访问、操作和管理Java应用程序中的数据...
总的来说,通过使用Hibernate的注解和自动建表功能,我们可以轻松地在Java应用中建立数据库模型,并在运行时自动创建数据库表。这极大地提高了开发效率,降低了出错的可能性,并使得数据库与Java代码之间的关系更加...
在这种情况下,Hibernate可以根据实体类自动创建对应的`User`和`Role`表,以及它们之间的关联。 总结,Hibernate的动态生成表结构功能极大地方便了开发过程,减少了手动创建和维护数据库表的工作量。通过正确配置...
在具体的代码示例中,我们将看到如何创建一个名为`User`的实体类,然后使用Hibernate自动在数据库中创建对应的`USER`表。实体类可能会包含`@Id`注解标识主键,以及其他属性和它们对应的列注解。通过SessionFactory...
**查看Hibernate自动生成的建表语句** 在开发过程中,有时我们需要查看Hibernate根据实体类自动生成的建表语句,这通常是为了调试或确认数据库结构。可以通过以下步骤实现: 1. 在Hibernate的配置文件(`hibernate....
3. **自动建表策略** Hibernate 提供了自动创建、更新、验证数据库表的策略。在配置文件中,你可以通过以下属性来控制这个行为: ```xml <property name="hibernate.hbm2ddl.auto">create ``` 上述配置中的`...
产生原因:因为使用 jpa 自动创建表的时候,采用的是TreeMap的,我们要变成LinkedHashMap 的结构。 解决方案:在项目下java文件夹下创建包名为: org.hibernate.cfg ,创建类: PropertyContainer [包名,类名...
1. Hibernate自动建表原理 Hibernate的核心是XML配置文件(hibernate.cfg.xml)和实体类。当我们指定了`hibernate.hbm2ddl.auto`属性为`create`或`update`时,Hibernate在启动时会自动检查数据库,如果不存在对应的...
5. **自动建表策略**:Hibernate提供了自动创建、更新、验证表结构的策略。在配置文件中添加以下行,可以指定Hibernate在启动时自动创建数据库表: ```xml <property name="hbm2ddl.auto">create ``` 注意,`create`...
如果没有使用自动化工具,开发者也可以手动进行转换。首先,分析实体类的属性,然后根据属性类型选择对应的MySQL数据类型,比如`String`对应`VARCHAR`,`int`对应`INT`,`Date`对应`DATE`或`TIMESTAMP`等。同时,别...
它还支持自动建表,这意味着在不同环境中部署应用程序时,无需预先创建数据库表,因为Hibernate可以根据配置自动创建。此外,Hibernate提供了强大的 Criteria API 和 HQL(Hibernate Query Language),使得查询更加...
3. **使用 SchemaExport 自动建表.txt** 这个文本文件可能提供了使用SchemaExport类的具体步骤和示例代码。通常,开发者会实例化SchemaExport类,传入SessionFactory对象,然后调用其`export()`方法来执行建表操作...
2. ORM(对象关系映射)框架:如Python的Django、Java的Hibernate等,它们允许开发者定义类,框架会自动将这些类映射到数据库表。 3. 数据库管理工具:如MySQL Workbench、Navicat等,提供图形化界面来设计和创建表...