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

Hibernate技巧:利用配置文件编写程序生成数据库

阅读更多
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表。

(3) 初始化数据库类

package com.hibtest;

import net.sf.hibernate.HibernateException;
import net.sf.hibernate.Session;
import net.sf.hibernate.SessionFactory;
import net.sf.hibernate.Transaction;
import net.sf.hibernate.cfg.Configuration;
import net.sf.hibernate.tool.hbm2ddl.SchemaExport;

import java.io.File;
import java.util.HashSet;
import java.util.Set;

/**
 * <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程序
   create database hibtest
分享到:
评论

相关推荐

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

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

    hibernate映射文件生成数据库

    4. 使用工具或API生成数据库:有了映射文件,你可以使用Hibernate的`SchemaExport`工具或者编程方式执行`sessionFactory.createSchema()`方法来根据映射文件生成数据库表。这将在数据库中创建对应的表结构。 三、...

    hibernate自动生成数据库文件

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

    Hibernate自动生成配置文件

    在项目初期或数据库模式更改时,手动编写Hibernate配置文件不仅耗时且容易出错。因此,利用工具自动生成配置文件成为提升开发效率的关键。 #### 二、在MyEclipse环境下配置Hibernate 在MyEclipse这一集成开发环境...

    Hibernate 3.2反向生成数据库文件

    在反向生成数据库文件的过程中,首先你需要确保已安装并配置好Hibernate 3.2以及相应的JDBC驱动(对于SQL 2000,这通常是Microsoft的JDBC驱动)。接下来,按照以下步骤进行操作: 1. **配置Hibernate**: 创建...

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

    Hibernate的逆向工程工具,也被称为Hibernate Tools,能够从现有的数据库结构自动生成对应的Java持久化类(Entity)、Hibernate配置文件(hibernate.cfg.xml)以及映射文件(.hbm.xml)。这样,开发者可以快速地...

    代码自动生成工具 hibernate配置文件工具 MagicalTools

    总之,MagicalTools是一款强大的代码自动生成工具,尤其在处理Hibernate配置文件时,能够显著提高开发效率,减少错误,让开发者更加专注于应用程序的业务逻辑。无论是初学者还是经验丰富的开发者,都可以从这个工具...

    利用Middlegen Hibernate3生成hbm.xml配置和java类

    Middlegen是一个开源工具,它能够根据数据库的表结构自动生成Hibernate的配置文件以及Java源代码。这样,开发者就不需要手动编写hbm.xml文件来描述数据库表与Java类之间的关系,也不需要为每个表创建对应的Java实体...

    MyEclipse 2014 使用hibernate3 生成数据库实体类 和 xml映射文件

    本文将深入探讨如何在MyEclipse 2014环境中利用Hibernate 3这一强大的ORM(对象关系映射)框架,生成数据库实体类和XML映射文件。这将帮助开发者有效地将Java对象与数据库表进行绑定,实现数据的透明操作。 首先,...

    AutoCode_SSHDemo_Setup自动生成HIBERNATE 配置文件 JAVA代码自动生成

    标题中的"AutoCode_SSHDemo_Setup自动生成HIBERNATE 配置文件 JAVA代码自动生成"表明这是一个关于自动化代码生成的工具,主要用于简化Hibernate配置文件和Java代码的编写过程。SSH在这里指的是Spring、Struts和...

    Hibernate通过配置文件自动生成表

    本篇将详细讲解如何通过Hibernate配置文件自动生成数据库表,以及相关的知识点。 **一、Hibernate概述** Hibernate是Java平台上的一个开源框架,它的主要功能是提供一种映射机制,将Java类与数据库表进行对应,...

    Hibernate 映射文件自动生成

    然而,手动编写这些映射文件可能会耗费大量时间,因此“Hibernate 映射文件自动生成”是一个非常实用的功能,它能够帮助开发者快速、准确地创建和维护这些映射文件。 【描述】虽然描述为空,但我们可以推测,这篇...

    hibernate依赖包与配置文件

    在Java应用程序中,Hibernate作为一个对象关系映射(ORM)工具,允许开发者用面向对象的方式处理数据库操作,而无需直接编写SQL语句。SSH是Spring、Struts和Hibernate三个开源框架的组合,常用于构建企业级Java应用...

    生成hibernate映射文件工具

    hibernate映射文件是Java开发中用于对象关系映射(ORM)的重要组成部分,它将数据库表与Java类之间的关系进行定义,使得开发者无需编写大量的SQL语句,就能实现对数据库的操作。`生成hibernate映射文件工具`是为了...

    JAVA通过实体生成数据库表

    运行Generator后,会自动生成Mapper接口、XML配置文件以及实体类对应的数据库表。 总结来说,"JAVA通过实体生成数据库表"是Java开发中提高效率的一种方式,它结合了反射和ORM技术,使得我们可以快速地根据业务需求...

    模拟hibernate根据表生成Java bean文件

    本话题聚焦于如何模拟Hibernate的功能,自动生成Java Bean文件,这在开发过程中可以极大地提高效率,尤其是在处理大量数据库表结构时。以下是关于这个主题的详细知识: 1. **Hibernate简介**: Hibernate是一个...

    Hibernate3所有包和配置文件

    这个压缩包包含的是Hibernate3的所有相关包和配置文件,这对于理解并使用Hibernate3进行数据库交互非常有用。 1. **hibernate3.jar**: 这是Hibernate3的核心库文件,包含了所有的类和接口,如Session, Transaction,...

    工程:MyEclipse配置Hibernate

    - **配置Hibernate配置文件(hibernate.cfg.xml)**:这是Hibernate项目的主配置文件,需要设定数据库连接信息(如URL、用户名、密码)、方言、缓存策略等。 - **创建实体类**:根据数据库中的表结构,创建对应的...

    使用PD(PowerDesigner)自动生成Hibernate的POJO文件及xml配置文件

    利用PowerDesigner自动生成Hibernate的POJO文件和xml配置文件,不仅大大减少了手动编码的工作量,还显著提升了代码质量和开发效率。通过精确控制生成代码的过程,开发者可以专注于业务逻辑的实现,而无需担心底层...

Global site tag (gtag.js) - Google Analytics