`
semi_sleep
  • 浏览: 101083 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

如何在没有hibernate.cfg.xml的情况下导出DDL

阅读更多

因为项目是用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);

 

0
0
分享到:
评论

相关推荐

    hibernate.cfg.xml

    hibernate.cfg.xml hibernate框架的配置文件

    Hibernate配置文件hibernate.cfg.xml中配置信息详解

    Hibernate配置文件hibernate.cfg.xml中配置信息详解!

    hibernate.cfg.xml文件

    虽然`hibernate.cfg.xml`文件主要用于配置,但深入了解Hibernate源码,我们可以看到在加载配置文件后,Hibernate会解析XML,构建内部的数据结构,然后根据这些配置初始化各种组件,如连接池、方言等。 总结,`...

    spring如何摒弃hibernate.cfg.xml

    在现代的Spring应用程序中,整合Hibernate时,我们通常会选择使用Spring的IoC(Inversion of Control)容器来管理数据访问层,而不是直接依赖于Hibernate的配置文件`hibernate.cfg.xml`。这是因为Spring提供了更高级...

    hibernate.cfg.xml 配置 和数据库驱动

    在实际开发中,我们通常会将`hibernate.cfg.xml`配置文件放在类路径下,以便于Hibernate加载。此外,也可以使用编程方式动态创建SessionFactory,但配置文件方式更加直观且易于维护。 总的来说,`hibernate.cfg.xml...

    Hibernate.cfg.xml配置总结

    Hibernate作为一款强大的Java对象关系映射框架,其核心配置文件Hibernate.cfg.xml在项目中起着至关重要的作用。这个文件主要负责定义数据源、连接池、SQL方言、日志以及实体类映射等关键设置。本文将深入探讨其中的...

    ssh整合,不带hibernate.cfg.xml的方式

    在这个场景中,我们关注的是不通过传统的`hibernate.cfg.xml`文件来配置Hibernate,而是借助Spring框架的`LocalSessionFactoryBean`进行整合。 首先,`hibernate.cfg.xml`是Hibernate传统配置文件,它包含了数据库...

    hibernate.cfg.xml文件详细解释

    ### hibernate.cfg.xml 文件详解 #### 一、概述 `hibernate.cfg.xml` 是 Hibernate 框架的核心配置文件之一,它主要用于配置 Hibernate 的运行环境。通过该文件,开发者可以指定数据库连接信息、日志级别、性能...

    hibernate配置文件hibernate.cfg.xml的详细解释

    在Java持久化框架Hibernate中,`hibernate.cfg.xml`是核心配置文件之一,它用于配置Hibernate的运行环境,包括数据库连接信息、性能参数以及其他高级配置选项等。正确配置此文件对于Hibernate的高效稳定运行至关重要...

    Hibernate配置文件hibernate.cfg.xml范本

    这是Hibernate的配置文件,hibernate.cfg.xml的具体写法,共友友们参考~~谢谢~

    08.拓薪教育-hibernate4.3的hibernate.cfg.xml基本配置.part2

    高级Hibernate4开发技术:ORM思想,hibernate介绍,hibernate.cfg.xml配置,hbm.xml映射文件详解,主键生成策略使用,PO对象状态及状态的转换分析、一级缓存,Hibernate数据检索技术,Hibernate高级映射技术,...

    hibernate.cfg.xml所有属性值

    hibernate.cfg.xml中各节点的所有属性值,取自hibernate官网,纯天然无污染。原装!

    (hibernate调用C3p0)hibernate.cfg.xml

    (hibernate调用C3p0)hibernate.cfg.xml

    JavaEE spring和Hibernate整合(有hibernate.cfg.xml)

    本文将深入探讨如何在JavaEE项目中整合Spring和Hibernate,以及hibernate.cfg.xml配置文件的作用。 首先,Spring是一个全面的后端应用程序框架,它提供了依赖注入(Dependency Injection,DI)、面向切面编程...

    08.拓薪教育-hibernate4.3的hibernate.cfg.xml基本配置.part1

    高级Hibernate4开发技术:ORM思想,hibernate介绍,hibernate.cfg.xml配置,hbm.xml映射文件详解,主键生成策略使用,PO对象状态及状态的转换分析、一级缓存,Hibernate数据检索技术,Hibernate高级映射技术,...

Global site tag (gtag.js) - Google Analytics