利用Hibernate配置文件生成数据库
转载自:http://tzylwl.iteye.com/blog/1153626
目前很多人使用Hibernate作为持久层,如果我们已经写了配置文件poweracl.hbm.xml,则不必再费劲写SQL的DDL。除了利用工具 SchemaExport之外,还可以编写程序来自动初始化数据库,并且生成SQL DDL。
1.Hibernate配置 文件hibernate.cfg.xml
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>
<session-factory>
<!--让hb在运行时显示实际执行的sql语句 -->
<property name="show_sql">true</property>
<!-- 使显示的sql格式化-->
<property name="format_sql">true</property>
<property name="connection.username">root</property>
<property name="connection.url">jdbc:mysql://localhost:3306/hibtest</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="connection.password">netjava</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- 指明user这个pojo类的映射文件的路径 -->
<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
(2)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.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"></column>
<generator class="assigned"></generator>
</id>
<property name="password" type="string">
<column name="password" sql-type="varchar(20)"></column>
</property>
<property name="name" type="string">
<column name="name" sql-type="varchar(20)"></column>
</property>
<property name="email" type="string">
<column name="eamil" sql-type="varchar(60)"></column>
</property>
<property name="modified" type="date">
<column name="modifier"></column>
</property>
<property name="creater" type="date">
<column name="creater"></column>
</property>
<property name="lastlogin" type="date">
<column name="lastlogin"></column>
</property>
</class>
</hibernate-mapping>
说明:具体的poweracl.hbm.xml要根据数据库表而设置,这里只是列举一个user表。
3.初始化数据库类
package com.hibtest;
import java.io.File;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
/**//**
* <p/> vedadou
* Date: 2004-02-25
* Time: 9:40:15
*/
public class InitDB {
static Session session;
public static void main(String[] args){
Configuration config = null;
Transaction tx = null;
try {
//生成表时,不需要启动服务器,不过需要先把数据库实例建好
config = new Configuration().configure(new File("E:/javaWeb2/yiwu/WebRoot/WEB-INF/hibernate.cfg.xml"));
System.out.println("Creating tables...");
SchemaExport schemaExport = new SchemaExport(config);
schemaExport.create(true, true);
System.out.println("Table created.");
SessionFactory sessionFactory = config.buildSessionFactory();
session = sessionFactory.openSession();
tx = session.beginTransaction();
tx.commit();
} catch (HibernateException e){
e.printStackTrace();
try {
tx.rollback();
} catch (HibernateException e1) {
e1.printStackTrace();
}
} finally {
}
}
}
分享到:
相关推荐
使用Hibernate 3.2反向生成数据库文件,具体操作流程请看项目" WebRoot/info "文件夹中的"Hibernate反向生成数据库表.doc",此资源下载不需要积分,希望对您有所帮助。
hibernate利用配置文件,实体关系数据库映射文件及数据库配置相关文件) 反向生成数据库所有配置文件, 及其所需的几个文件所有详细代码
hibernate反向生成数据库程序一段简单的程序代码
Eclipse使用hibernate插件反向生成数据库实体类,亲身操作,绝对真实有效
根据hibernate反向生成数据库的java代码!
利用hibernate的逆向工程生成数据库表
hibernate反向生成数据库表
有图解说明,直观学习,同学们可以对着图解进行操作
一般在项目开发过程中,使用比较多的就是先建好表,再利用hibernate反向工程生成*.hbm.xml文件跟POJO类,个人认为由于目前所使用的数据库都是关系数据库,而hibernate作为一个ORM,把对数据库的操作都对象化了,更...
eclipse从数据库逆向生成Hibernate实体类
eclipse中,由数据库反向生成hibernate实体类.pdf
通过数据库表、用JAVA生成实体类的步骤。
根据mysql数据库反向生成bean,源码
hibernate逆向生成小问题,主要是由数据库反向自成domain.
如果已经存在一个数据库,需要创建包含EJB注解的实体,那么可以通过文档中的步骤实现。
HIBERNATE - 符合Java习惯的关系数据库持久化 Hibernate参考文档 3.2 -------------------------------------------------------------------------------- 目录 前言 1. 翻译说明 2. 版权声明 1. Hibernate...
在实际开发中,一般都是表结构先设计好,再实现代码,所以根据表结构生成数据库实体类比较常见。说不如做,行动吧 博客中有详细说明。
文章http://www.blogjava.net/pengo/archive/2011/04/30/349310.html的附件
spring整合springMVC和hibernate和redis增删改查实例
5. 运行SQL脚本生成演示应用所需的数据库表与测试数据 6. 运行com.jb.arklis.app.DemoApplication类 7. 如果一切正常,那么可以看一个弹出的对话框,里面数据库表userinfo的十二记录 设计思路: 该自定的框架对书写...