Hibernate:利用配置文件生成数据库

目前很多人使用Hibernate作为持久层,如果我们已经写了配置文件poweracl.hbm.xml,则不必再费劲写SQL的DDL。除了利用工具SchemaExport之外,还可以编写程序来自动初始化数据库,并且生成SQL DDL。

(1)Hibernate配置文件hibernate.cfg.xml

<?xml version='1.0' encoding='gb2312'?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost/hibtest</property>
<property name="hibernate.connection.username">test</property>
<property name="hibernate.connection.password">123456</property>
<property name="hibernate.connection.pool.size">20</property>
<property name="hibernate.show_sql">true</property>
<property name="jdbc.fetch_size">50</property>
<property name="jdbc.batch_size">25</property>
<property name="jdbc.use_scrollable_resultset">false</property>
<property name="hibernate.dialect">net.sf.hibernate.dialect.MySQLDialect</property>
<!-- Mapping files -->
<mapping resource="com/hibtest/poweracl.hbm.xml"/>
</session-factory>
</hibernate-configuration>

注意:(1)JDBC驱动为com.mysql.jdbc.Driver,可以根据所使用的库而更换。

(2)dialect为数据库方言,根据所使用数据库不同而不同。这里是Mysql。

(3)jdbc.fetch_size和jdbc.batch_size过小会降低性能,这里是建议设置。

(4)mapping文件根据文件所在路径而不同。这里是放在WEB-INF/classes/com/hibtest/目录下。

(2)数据库映射配置poweracl.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
<class name="com.hibtest.user" table="user" discriminator-value="W">
<id name="loginname" type="string" >
<column name="loginname" sql-type="char(16)" not-null="true"/>
<generator class="assigned"/>
</id>
<property name="password" type="string">
<column name="password" sql-type="varchar(20)" />
</property>
<property name="name" type="string">
<column name="name" sql-type="varchar(20)" />
</property>
<property name="email" type="string">
<column name="email" sql-type="varchar(60)" />
</property>
<property name="modified" type="date">
<column name="modifier" />
</property>
<property name="creater" type="date">
<column name="creater" />
</property>
<property name="lastlogin" type="date">
<column name="lastlogin" />
</property>
</class>
</hibernate-mapping>

说明:具体的poweracl.hbm.xml要根据数据库表而设置,这里只是列举一个user表。

时间: 2024-09-08 05:55:05

Hibernate:利用配置文件生成数据库的相关文章

使用hibernate扩展工具hbm2java根据配置文件生成持久化对象类(2.1.2)

对象 使用hbm2java生成代码是非常容易的,比hibernate提供的schemaExport(配置文件到数据库)的使用容易得多.真不知道作者怎么搞的,把个schemaExport写得这么难...... 1.开始前的准备  1.1 准备hibernate-2.1.6.zip  1.2 准备hibernate-extensions-2.1.2.zip  1.3 准备logging-log4j-1.2.9.zip  1.4 把相关.jar文件全部复制到工程目录之下的lib目录  1.5 知道如何

mysql数据库表里面有一个属性映射到另外两个表的主键,hibernate的配置文件如何写

问题描述 mysql数据库表里面有一个属性映射到另外两个表的主键,hibernate的配置文件如何写 就是说有一个反馈信息的表,里面有一个属性useridOrclubid 是映射到社团表主键clubid 和用户表主键userid 的.我应该怎么样配置hbm.xml文件 解决方案 http://stackoverflow.com/questions/4089539/hibernate-use-two-foreign-keys-for-different-coloumnshttp://stackov

hibernate配置文件中数据库密码加密

问题描述 hibernate配置文件中数据库密码加密 求大神支招啊... 这是的hibernate.xml <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-co

Hibernate根据映射文件生成数据库表

问题描述 package com.xy.HibernateUtil; import org.hibernate.cfg.Configuration; import java.io.File; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.h

工欲善其事,必先利其器——利用PowerDesigner建模并生成数据库文件

  首先介绍一下Power Designer:它是Sybase公司的CASE工具集,使用它可以方便地对管理信息系统进行分析设计,它几乎包括了数据库设计全过程.利用Power Designer可以制作数据流程图.概念数据模型.物理数据模型,还可以为数据仓库制作结构模型,对团队设计模型进行控制.它可以与许多流行的软件开发工具如PowerBuilder.Delphi.VB等相配合缩短开发时间以及使系统设计更优化.   在机房收费系统重构阶段,设计数据库是最令人头疼的,设计一个好的数据库可以为以后省下不

Hibernate主键生成策略总结(这里面讲的很详细)

 Hibernate提供的主键生成策略,使我们可以在实体类的映射xml文件中设定关键字来告诉hibernate我们要使用的主键生成方式,然后hibernate会根据设定完成数据库的主键控制. 一.首先通过举例子来了解实体映射文件(*.hbm.xml)中对id生成策略配置格式     用户User的实体类User.java      [java] view plaincopyprint? package com.bjpowernode.hibernate;    import java.util.

常用Hibernate主键生成策略

今天学习到了关于Hibernate主键生成策略的问题,总结下,不足之处,请大家指出. Hibernate为优秀的持久层框架的代表.在传统的JDBC+JavaBean操作中,实体对象都由程序员自己去封装,然后返回.而在Hibernate中,采用对象关系映射『ORM』,大大简化了对数据库的操作. 在数据库的设计和操作中,我们通常会给表建立主键.主键,可以分为自然主键和代理主键. 自然主键表示:采用具有业务逻辑含义的字段作为表的主键.比如在用户信息表中,采用用户的身份证号码作为主键.但是这样一来,随着

hibernate tools自动生成entity代码

1.eclipse下载安装jboss tools插件 2.新建hibernate.cfg.xml 3.选择文件生成路径一般在 Project的配置文件存放地点resource.因为用maven创建所以放在src\main\resource下面 4.hibernate.cfg.xml 配置信息 sessonFactory 名字:oracle最好统一成 sessonFactory 控制台配置文件生成选项checkbox 打钩.oracle可以填写schema :数据库表空间来过滤表,sqlserve

Hibernate的配置文件解析

配置mybatis.xml或hibernate.cfg.xml报错: <property name="connection.url">jdbc:mysql://localhost:3306/hibernate?characterEncoding=UTF-8&autoReconnect=true</property>   The reference to entity "autoReconnect" must end with the