因为项目是用spring来配置hibernate,同时用的是hibernate的annotation,所以根本不没有任何hibernate相关的xml配置文件(最喜欢零配置了,呵呵),但是当要导出sql的DDL的时候问题就来了,一般hibernate的schema export的教程上面都要配置一个hibernate.cfg.xml,这时只能自己写code来实现导出了,其实也很简单。
思路如下:
1.hibernate提供了一个叫SchemaExport的类来专门生成DDL,这个类的构造函数要一个Configuration对象来初始化。只要拿到生成SessionFactory的Configuration对象就行了。
2.在spring中我用的是AnnotationSessionFactoryBean来创建SessionFactory,这个类继承于LocalSessionFactoryBean,利用它的getConfiguration方法就可以拿到Configuration对象。
下面是实现:
Spring的配置文件:
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="annotatedClasses">
<bean class="com.bugu.util.spring.AnnotatedClassFactoryBean">
<property name="location" value="classpath:annotated_classes.properties" />
</bean>
</property>
<property name="annotatedPackages">
<bean class="com.bugu.util.spring.AnnotatedPackageFactoryBean">
<property name="location" value="classpath:annotated_packages.properties" />
</bean>
</property>
<property name="hibernateProperties">
<bean class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="location" value="classpath:hibernate.properties" />
</bean>
</property>
</bean>
用于将DDL打出到控制台的代码:
ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
// 因为是FeactoryBean,所以要用"&sessionFactory"来获得
AnnotationSessionFactoryBean asfb = (AnnotationSessionFactoryBean) context.getBean("&sessionFactory");
SchemaExport se = new SchemaExport(asfb.getConfiguration());
se.create(true, false);
分享到:
相关推荐
hibernate.cfg.xml hibernate框架的配置文件
Hibernate配置文件hibernate.cfg.xml中配置信息详解!
虽然`hibernate.cfg.xml`文件主要用于配置,但深入了解Hibernate源码,我们可以看到在加载配置文件后,Hibernate会解析XML,构建内部的数据结构,然后根据这些配置初始化各种组件,如连接池、方言等。 总结,`...
在现代的Spring应用程序中,整合Hibernate时,我们通常会选择使用Spring的IoC(Inversion of Control)容器来管理数据访问层,而不是直接依赖于Hibernate的配置文件`hibernate.cfg.xml`。这是因为Spring提供了更高级...
Hibernate作为一款强大的Java对象关系映射框架,其核心配置文件Hibernate.cfg.xml在项目中起着至关重要的作用。这个文件主要负责定义数据源、连接池、SQL方言、日志以及实体类映射等关键设置。本文将深入探讨其中的...
在实际开发中,我们通常会将`hibernate.cfg.xml`配置文件放在类路径下,以便于Hibernate加载。此外,也可以使用编程方式动态创建SessionFactory,但配置文件方式更加直观且易于维护。 总的来说,`hibernate.cfg.xml...
在这个场景中,我们关注的是不通过传统的`hibernate.cfg.xml`文件来配置Hibernate,而是借助Spring框架的`LocalSessionFactoryBean`进行整合。 首先,`hibernate.cfg.xml`是Hibernate传统配置文件,它包含了数据库...
### hibernate.cfg.xml 文件详解 #### 一、概述 `hibernate.cfg.xml` 是 Hibernate 框架的核心配置文件之一,它主要用于配置 Hibernate 的运行环境。通过该文件,开发者可以指定数据库连接信息、日志级别、性能...
在Java持久化框架Hibernate中,`hibernate.cfg.xml`是核心配置文件之一,它用于配置Hibernate的运行环境,包括数据库连接信息、性能参数以及其他高级配置选项等。正确配置此文件对于Hibernate的高效稳定运行至关重要...
这是Hibernate的配置文件,hibernate.cfg.xml的具体写法,共友友们参考~~谢谢~
高级Hibernate4开发技术:ORM思想,hibernate介绍,hibernate.cfg.xml配置,hbm.xml映射文件详解,主键生成策略使用,PO对象状态及状态的转换分析、一级缓存,Hibernate数据检索技术,Hibernate高级映射技术,...
hibernate.cfg.xml中各节点的所有属性值,取自hibernate官网,纯天然无污染。原装!
(hibernate调用C3p0)hibernate.cfg.xml
本文将深入探讨如何在JavaEE项目中整合Spring和Hibernate,以及hibernate.cfg.xml配置文件的作用。 首先,Spring是一个全面的后端应用程序框架,它提供了依赖注入(Dependency Injection,DI)、面向切面编程...
高级Hibernate4开发技术:ORM思想,hibernate介绍,hibernate.cfg.xml配置,hbm.xml映射文件详解,主键生成策略使用,PO对象状态及状态的转换分析、一级缓存,Hibernate数据检索技术,Hibernate高级映射技术,...