`
tzylwl
  • 浏览: 91869 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

利用Hibernate的配置反向生成数据库

 
阅读更多

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

 

 

目前很多人使用Hibernate作为持久层,如果我们已经写了配置文件poweracl.hbm.xml,则不必再费劲写SQLDDL。除了利用工具 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>注意:(1JDBC驱动为com.mysql.jdbc.Driver,可以根据所使用的库而更换。
   2dialect 为数据库方言,根据所使用数据库不同而不同。这里是Mysql

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

  (4mapping文件根据文件所在路径而不同。这里是 放在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("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 {

      

       }

       }

      

}

始化之前,应该先手工创建一个空数据库,然后再执行InitDB程序

分享到:
评论

相关推荐

    Eclipse数据库hibernate反向生成数据库类

    Eclipse数据库hibernate反向生成数据库类 在本篇文章中,我们将详细介绍如何使用Eclipse中的Hibernate插件反向生成数据库实体类。首先,我们需要安装Hibernate Tools,下载地址为...

    Hibernate 3.2反向生成数据库文件

    在提供的"WebRoot/info"文件夹中的"Hibernate反向生成数据库表.doc"文档,应该详细介绍了以上操作流程,建议仔细阅读以掌握具体步骤。如果你在使用过程中遇到任何问题,可以参考Hibernate的官方文档或在线社区寻求...

    hibernate利用配置文件反向生成数据库所有配置文件及方法

    本篇文章将详细讲解如何使用Hibernate通过配置文件反向生成数据库的所有配置文件,以及涉及的相关步骤和技术要点。 首先,Hibernate的反向工程(Reverse Engineering)功能可以帮助开发者从现有的数据库中生成实体...

    hibernate反向生成数据库程序

    "hibernate反向生成数据库程序"是指通过Hibernate框架,从已有的数据库结构生成对应的Java实体类和映射文件,这样可以简化数据库与Java对象之间的交互。下面将详细介绍这个过程以及提供的代码片段。 首先,我们需要...

    根据hibernate反向生成数据库的java代码

    "根据Hibernate反向生成数据库的Java代码"这一主题涉及到的主要知识点包括Hibernate的逆向工程、实体类生成、数据库元数据以及Java持久化接口。 1. Hibernate逆向工程: Hibernate的逆向工程工具,也被称为...

    hibernate反向生成数据库表

    利用hibernate的逆向工程生成数据库表

    eclipse 配置 hibernate tools 反向生成 pojo类 注解

    现在你可以使用Hibernate Tools反向生成POJO类了: 1. 在Eclipse的Package Explorer或Project Explorer中,右键点击你想生成POJO类的包名,选择“New” &gt; “Other…”。 2. 在弹出的对话框中,展开“Hibernate”...

    hibernate反向生成数据库表.doc

    《使用Hibernate反向生成数据库表》 在Java后端开发中,Hibernate是一个强大的对象关系映射(ORM)框架,它简化了数据库操作。利用Hibernate,开发者可以将Java类与数据库表进行映射,使得数据库操作更加面向对象。...

    hibernate自动生成数据库文件

    综上所述,Hibernate自动生成数据库文件涉及到ORM设计、Hibernate Tools的使用、配置文件的编写、Java注解的理解以及数据库操作的最佳实践等多个方面。掌握这些知识点有助于高效地利用Hibernate进行数据库开发。

    myeclipse与hibernate―反向生成实体类和DAO

    MyEclipse与Hibernate反向生成实体类和DAO MyEclipse是一个基于Eclipse平台的集成开发环境(IDE),它提供了很多实用的功能和插件来帮助开发者快速开发Java应用程序。Hibernate是一个流行的对象关系映射(ORM)框架...

    eclipse由数据库反向生成hibernate实体类(图解).doc

    在Eclipse中实现数据库反向生成Hibernate实体类的过程主要包括数据源配置与实体类生成两大步骤。 ##### 1. 数据源配置 **第一步**:首先需要打开Eclipse中的数据连接配置界面。可以通过Eclipse的菜单栏进行操作:...

    Myeclipse自动生成Hibernate配置并对数据库进行增删查改测试

    7. **实体类映射**:通过Hibernate反向工程(Hibernate Reverse Engineering),可以将数据库表转换为Java实体类。选择表,指定生成的类路径和包名,以及数据访问对象(DAO)和持久化对象(POJO)。 8. **ID生成器*...

    hibernate反向生成实体类及CRUD操作教学视频

    【hibernate反向生成实体类及CRUD操作教学视频】是针对Java开发中的一个重要框架——Hibernate进行深入学习的资源。Hibernate是一个强大的对象关系映射(ORM)框架,它简化了Java应用程序对数据库的操作,通过将Java...

    Hibernate在eclipse中反向生成

    在实际开发过程中,为了提高效率,往往会利用工具来帮助我们自动生成一部分代码,比如通过 Hibernate 工具来进行反向生成。 #### 二、Hibernate Tools 插件安装 在 Eclipse 中使用 Hibernate 的反向生成功能之前,...

    Hibernate反向工程详细步骤

    本文将详细介绍如何利用MyEclipse进行Hibernate反向工程生成实体类的步骤。 #### 二、准备工作 在开始进行Hibernate反向工程之前,我们需要确保已经具备以下条件: 1. **Java开发环境**:包括JDK安装与配置。 2. ...

    SSH和DWR简单整合,还包括了根据Pojo反向生成数据库的经典代码

    这篇教程将详细介绍如何将这三个框架与Direct Web Remoting (DWR)进行整合,以及如何根据Pojo(Plain Old Java Object)对象反向生成数据库表。 **SSH框架详解:** 1. **Spring**:Spring 是一个全面的后端应用框架...

    myeclipse中hibernate的反向工程

    3. **启动反向工程向导**: 通过MyEclipse的菜单或快捷方式启动Hibernate反向工程向导。 4. **配置映射选项**: 在向导中选择要映射的表,配置实体类生成的位置以及映射文件的命名规则等。 5. **执行反向工程**: 完成...

    tableTobean.rar_CZAF_K7W_TabletoBean_hibernate反向生成bean

    《使用Hibernate进行数据库表反向生成Bean的详细指南》 在Java开发中,尤其是在使用ORM框架如Hibernate时,从数据库表反向生成Bean是常见的需求。这样可以节省手动编写Java对象(Bean)的时间,提高开发效率。本篇...

    [SSH+Maven+Bootstrap视频教程]_12. 新建Hibernate反向生成实体类工程.zip

    新建Hibernate反向生成实体类工程.zip"中,我们主要探讨的是如何利用SSH(Struts2、Spring、Hibernate)框架结合Maven构建工具以及Bootstrap前端框架,来创建一个基于Hibernate的Java Web项目,并通过Hibernate的...

    Hibernate反向工程

    3. **工具支持**:很多IDE,如Eclipse、IntelliJ IDEA等,都有集成的Hibernate反向工程插件,用户可以通过图形界面配置数据库连接、选择需要反向工程的表,然后生成相应的Java源代码。 4. **配置文件**:在进行反向...

Global site tag (gtag.js) - Google Analytics