`

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也可以自动建表 
分享到:
评论

相关推荐

    hibernate3.5多对多自动建表

    用hibernate3.5 xml文件映射,junit实现多对多自动建表,下载后解压用myeclipse导入,这里要注意:需要junit的包。这个是学hibernate的关键,建议新手作为重点,大虾就请多多指教了

    springMVC4+hibernate4+mysql全注解自动建表

    注释齐全,'零'配置文件 (1)在config中找到db.properties:连接自己的mysql (2)在连接到的mysql中建一个数据库(database):(defaultName:mvcdemo) (3)运行本项目 (4)页面输入 ...

    Hibernate动态建表

    5. **自动建表(Schema Generation)**: Hibernate的`hibernate.hbm2ddl.auto`配置属性决定了在应用启动时如何处理数据库表。设置为`create`会在每次启动时清空并重建表,`update`则只更新表结构以适应新的实体定义...

    HIBERNATE:Hibernate 学习一--注解方式自动建表

    通过这些注解和配置,开发者可以快速地建立Java对象与数据库表之间的映射,并利用Hibernate自动创建数据库表,大大提高了开发效率。在实际项目中,结合Spring等框架,可以实现更高效、便捷的数据库操作。 在提供的...

    SSH高质量整合.Spring注解标签,项目启动自动建表.

    综上所述,SSH高质量整合利用Spring的注解简化配置,通过Hibernate的注解实现ORM映射,同时利用Hibernate的自动建表功能,极大地提高了开发效率。项目中的标签注入则优化了视图层的开发,使得整个Web应用的开发流程...

    自动在数据库中建成表(Hibernate)

    使用Hibernate自动建表功能,可以快速地将设计的实体模型转化为实际的数据库结构,对于快速开发和原型验证非常有帮助。同时,也要注意,虽然自动建表方便,但在生产环境中应谨慎使用,以防止数据丢失。

    struts2+hibernate整合增删改查加注册登录Demo包含数据库自动建表语句

    3. **数据库自动建表语句**:在Hibernate中,可以通过配置使其自动根据映射文件创建数据库表,这对于快速原型开发或测试非常有用。这通常在hibernate.cfg.xml的`hibernate.hbm2ddl.auto`属性中设置,如设为"create...

    JPA注解 和hibernate 建表

    JPA注解和Hibernate建表 一、JPA概述 Java Persistence API(JPA)是Sun官方提出的Java持久化规范,它只是一个规范不是一个产品。JPA的主要目标是提供一种简洁、易用的方式来访问、操作和管理Java应用程序中的数据...

    Hibernate自动生成表demo

    总的来说,通过使用Hibernate的注解和自动建表功能,我们可以轻松地在Java应用中建立数据库模型,并在运行时自动创建数据库表。这极大地提高了开发效率,降低了出错的可能性,并使得数据库与Java代码之间的关系更加...

    hibernate动态生成表结构

    在这种情况下,Hibernate可以根据实体类自动创建对应的`User`和`Role`表,以及它们之间的关联。 总结,Hibernate的动态生成表结构功能极大地方便了开发过程,减少了手动创建和维护数据库表的工作量。通过正确配置...

    hibernate建表例子

    在具体的代码示例中,我们将看到如何创建一个名为`User`的实体类,然后使用Hibernate自动在数据库中创建对应的`USER`表。实体类可能会包含`@Id`注解标识主键,以及其他属性和它们对应的列注解。通过SessionFactory...

    hibernate的相关jar包

    **查看Hibernate自动生成的建表语句** 在开发过程中,有时我们需要查看Hibernate根据实体类自动生成的建表语句,这通常是为了调试或确认数据库结构。可以通过以下步骤实现: 1. 在Hibernate的配置文件(`hibernate....

    hibernate简单的入门案例

    3. **自动建表策略** Hibernate 提供了自动创建、更新、验证数据库表的策略。在配置文件中,你可以通过以下属性来控制这个行为: ```xml &lt;property name="hibernate.hbm2ddl.auto"&gt;create ``` 上述配置中的`...

    解决 Springboot Jpa 自动创建表 和字段乱序问题[凤凰小哥哥]

    产生原因:因为使用 jpa 自动创建表的时候,采用的是TreeMap的,我们要变成LinkedHashMap 的结构。 解决方案:在项目下java文件夹下创建包名为: org.hibernate.cfg ,创建类: PropertyContainer [包名,类名...

    hibernate根据类生成表

    1. Hibernate自动建表原理 Hibernate的核心是XML配置文件(hibernate.cfg.xml)和实体类。当我们指定了`hibernate.hbm2ddl.auto`属性为`create`或`update`时,Hibernate在启动时会自动检查数据库,如果不存在对应的...

    hibernate中创建表

    5. **自动建表策略**:Hibernate提供了自动创建、更新、验证表结构的策略。在配置文件中添加以下行,可以指定Hibernate在启动时自动创建数据库表: ```xml &lt;property name="hbm2ddl.auto"&gt;create ``` 注意,`create`...

    java实体转mysql建表语句

    如果没有使用自动化工具,开发者也可以手动进行转换。首先,分析实体类的属性,然后根据属性类型选择对应的MySQL数据类型,比如`String`对应`VARCHAR`,`int`对应`INT`,`Date`对应`DATE`或`TIMESTAMP`等。同时,别...

    ibatis和hibernate的区别

    它还支持自动建表,这意味着在不同环境中部署应用程序时,无需预先创建数据库表,因为Hibernate可以根据配置自动创建。此外,Hibernate提供了强大的 Criteria API 和 HQL(Hibernate Query Language),使得查询更加...

    根据hibernate配置文件生成数据库.zip

    3. **使用 SchemaExport 自动建表.txt** 这个文本文件可能提供了使用SchemaExport类的具体步骤和示例代码。通常,开发者会实例化SchemaExport类,传入SessionFactory对象,然后调用其`export()`方法来执行建表操作...

    自动创建表

    2. ORM(对象关系映射)框架:如Python的Django、Java的Hibernate等,它们允许开发者定义类,框架会自动将这些类映射到数据库表。 3. 数据库管理工具:如MySQL Workbench、Navicat等,提供图形化界面来设计和创建表...

Global site tag (gtag.js) - Google Analytics