hbm2ddl工具位于Hibernate核心软件包中,而hbm2java工具位于Hibernate工具包中,因此需要下载Hibernate工具包,文件形式为HibernateTools-X.zip。

Hibernate提供了从映射文件到数据库Schema的转换工具,名为hbm2ddl工具。使hbm2ddl工具时,必须在Hibernate的配置文件中设置hibernate。dialect属性,显式指定底层数据库的SQL方言。 
<target name="schema" depends="compile"> 
  <taskdef name="hbm2ddlTask" 
           classname="org.hibernate.tool.ant.HibernateToolTask" 
           classpathref="project.class.path" /> 
  <hbm2ddlTask destdir="${schema.dir}"> 
       <configuration 
            configurationfile="${class.root}/hibernate.cfg.xml"  /> 
  <hbm2ddl export="true"  console="true"  create="true" 
           drop="true"  outputfilename="dbName.sql"  /> 
  </hbm2ddlTask> 
</target> 
hbm2ddl任务的属性 
export:          若为true,表示在数据库中执行所生产的ddl脚本。默认为false。 
drop:            若为true,表示会生成删除数据库中表的ddl脚本。默认为false。 
create:          若为true,表示会生成创建数据库中表的ddl脚本。默认为false。 
outputfilename: 指定存放ddl脚本的文件。 
update:          若为true,表示会对比现有数据库及映射文件,生成用于增量更新数据库的ddl。默认为false。 
haltonerror:    若为true,表示遇到错误时会终止运行ant工程。默认为false。 
format:          设定ddl脚本中SQL语句的格式。 
delimiter:       为ddl脚本设置行结束符。 
console:         若为true,表示会在控制台显示生成的ddl脚本。默认为true。

使用xml配置hibernate。通常命名为hibernate.cfg.xml 
<hibernate-configuration> 
  <session-factory> 
     <property name="dialect"> 
        org.hibernate.dialect.MySQLDialect</property>

<property name="connection.driver_class"> 
         com.mysql.jdbc.Driver</property>

<property name="connection.url"> 
         jdbc:mysql://localhost:3306/dbName</property> 
     
     <property name="connection.username">root</property> 
     <property name="connection.password">tiger</property> 
     <property name="show_sql">true</property>

<mapping resource="xxx.hbm.xml"  />

</session-factory> 
</hibernate-configuration>

若Hibernate的配置文件为java属性文件,必须以编程方式声明需要加载的映射文件,xml则不必调用。 
    SessionFactory sessionFactory = new Configuration() 
          .addClass(xx.class).buildSessionFactory(); 
默认情况下,Hibernate不会加载hibernate.cfg.xml文件,必须通过Configuration的configure()方法来显式加载hibernate.cfg.xml文件。  
    SessionFactroy sessionFactory = new Configuration() 
          .configure().buildSessionFactory();

持久化类使用JavaBean的风格,为需要被访问的属性提供get和set方法,这两个方法也称为持久化类的访问方法。

为什么hibernate中持久化对象要有set和get方法? 
java应用程序调用对象的get方法读取外界信息后调用set方法,把信息存到对象中;Hibernate调用对象的get方法读取对象信息后存到数据库调用set方法把数据从数据库中独取出来后存到对象中。Hibernate可以访问任何级别的get、set方法。

基本数据类型的缺点在与无法表达null值;包装类型的默认值是null。 
在对象-关系映射文件中,<property>元素的access属性用于指定Hibernate访问持久化类的属性方式。access有一下两个值可选:property:默认值,表明hibernate通过相应的get和set方法来访问类的属性。field属性表明Hibernate运用java反射机制直接访问类的属性,不需get和set方法。

在SQL语法中,标识符是指用于为数据库表、视图、字段或索引等明名的字符串,常规标识符不包含空格,也不包含特殊字符;若数据库表名或字段名中包含空格,或包含特殊字符,则可以使用引用标识符。'xxx xx'

创建数据库的命名策略:实现Hibernate的org.hibernate.cfg.ImprovedNamingStragegy接口。它提供了两个参考实现类:org.hibernate.cfg.DefaultNamingStragegy类(默认实现类);org.hibernate.cfg.ImproveNamingStragegy类(高级实现类)。

hbm2ddl的更多相关文章

  1. hibernate.hbm2ddl.auto配置详解

    hibernate.cfg.xml 中hibernate.hbm2ddl.auto配置节点如下:<properties><property name="hibernate. ...

  2. Hibernate hbm2ddl.auto DDL语句 控制台输出的配置

    在开发中我们需要知道hbm2ddl.auto生成的SQL语句,来判断代码的正确性,现在记录配置的过程. Hibernate的DDL语句在控制台的输出配置: 一.在lib中确保只有下面的三个相关包:1) ...

  3. Mingyang.net:hibernate.hbm2ddl.auto配置详解【转】

    原文地址:http://www.cnblogs.com/feilong3540717/archive/2011/12/19/2293038.html hibernate.cfg.xml 中hibern ...

  4. hibernate配置之<property name="hbm2ddl.auto">create</property>导致每次创建SessionFactory都清空数据库中的数据

    参考:http://stackoverflow.com/questions/6611437/how-to-make-hibernate-not-drop-tables 我遇到的问题就是: List l ...

  5. hibernate hbm2ddl auto 不能创建表的问题

    http://fuckgis.blog.sohu.com/148751122.html ________________________________________________________ ...

  6. hibernate篇章四-- Hibernate配置文件中hiberante.hbm2ddl.auto四个参数的配置

    我们在搭建环境的时候,在配置文件中有一个属性标签为: <property name="hibernate.hbm2ddl.auto">     </propert ...

  7. Hibernate配置文件中hiberante.hbm2ddl.auto四个参数的配置

    我们在搭建环境的时候,在配置文件中有一个属性标签为: <property name="hibernate.hbm2ddl.auto">     </propert ...

  8. Hibernate配置文件的hbm2ddl.auto属性

    今天遇到一个有意思的问题,我目前做的一个网站采用Spring MVC + Spring + Hibernate的架构,我通过页面插入了一些数据到数据库,可是每次重启tomcat之后,数据都莫名其妙地丢 ...

  9. (转)hibernate 之hiberante.hbm2ddl.auto 参数的配置

    我们在搭建环境的时候,在配置文件中有一个属性标签为: 完整配置如下 <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernat ...

随机推荐

  1. python中字典dict的操作

    字典可存储任意类型的对象,由键和值(key - value)组成.字典也叫关联数组或哈希表. dict = {' , 'C' : [1 , 2 , 3] } dict['A'] = 007 # 修改字 ...

  2. CSS3发光字动画

    ;} img{ width:200px; height:200px; border:2px solid #000} .back h5 { font-size: 4em; color: #f2050b; ...

  3. tab切换-自动、点击、内容变换

    <div class="tab">                    <ul class="pics">               ...

  4. 为 Node.js 开发者准备的 8 本免费在线电子书(转)

    ode.js 是一套用来编写高性能网络服务器的JavaScript工具包,一系列的变化由此开始.比较独特的是,Node.js会假设你是在POSIX环境下运行它 Linux 或 Mac OS X.如果你 ...

  5. 《Play for Java》学习笔记(七)数据类型解析——Body parser

    一.什么是body parser? body parser(不知道具体如何翻译,~~~~(>_<)~~~~ )指一个HTTP请求 (如POST和PUT操作)所包含的文本内容(body),这 ...

  6. JSP中,当页面为404或者500时。设置跳转到错误提示页面

    最好的就是在WEB.XML文件中配置错误代码的跳转页面,首先建立个 出现500错误的页面,提示出错了,然后再WEB.XML文件中配置,配置如下 一. 通过错误码来配置error-page <er ...

  7. Android WebView的使用

    WebView是View的一个子类,使用它可以在App中嵌入H5页面,可以跟js互相调用. webview有两个方法:setWebChromeClient和setWebClient setWebCli ...

  8. python的一点小常识

    在Python中,有两种变长参数,分别是元组(非关键字参数)和字典(关键字参数),其参数以一个*开头表示任意长度的元组[tuple],可以接收连续一串参数,参数以两个*开头表示一个字典[dict],即 ...

  9. WebAPI用法

    ASP.NET Web API(一):使用初探,GET和POST数据[Parry] HttpClient + ASP.NET Web API, WCF之外的另一个选择[dudu] 通过这两篇文章让我了 ...

  10. TaskTracker节点上的内存管理器

    Hadoop平台的最大优势就是充分地利用了廉价的PC机,这也就使得集群中的工作节点存在一个重要的问题——节点所在的PC机内存资源有限(这里所说的工作节点指的是TaskTracker节点),执行任务时常 ...