分享

利用ant,hibernate的schemaexport自动生成数据库 | 中国JAVA技...

 软件团队头目 2007-12-25

利用ant,hibernate的schemaexport自动生成数据库

先用eclipse新建一个项目student作为示范
新建Student类
如下:

package student;
public class Student {
private Long id;
private String name;
private String sex;
private String email;
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}

接下来编写ant任务生成数据库文件
注意:
我把eclipse放在了D盘,即D:/eclipse,eclipse对应的workspace也在D盘,D:/workspace
我把所有的lib及其依赖包都放在D:/workspace/lib,这些jar文件当然都包括hibernate3.jar还有其依赖包(里面还有其他的东西,例如spring的jar还有xdoclet的jar,这里用不到就不涉及了)
在D:/workspace/student项目目录下新建一个hibernate-build.xml用于书写ant任务,文件目录如下:D:/workspace/student/hibernate-build.xml

当然,eclipse 项目的文件我是分成两个目录的,即src(存储原文件,后缀为.java)和bin(存储编译过的文件,后缀为.class)
目录D:/workspace/student/src/Student.java
D:/workspace/student/bin/Student.class

<project name="hibernate-build.xml" default="createDatabase">
<property name="classes.dir" value="bin" />
<property name="lib.dir" value="../lib" />
<property name="src.dir" value="src"/>
<path id="lib.classpath">
<fileset dir="${lib.dir}">
<include name="**/*.jar"/>
</fileset>
</path>
<path id="src.classpath">
<pathelement location="${src.dir}"/>
</path>
<path id="runtime.classpath">
<path refid="lib.classpath"></path>
<path refid="src.classpath"></path>
</path>
<target name="createDatabase">
<taskdef name="schemaexport" classname="org.hibernate.tool.hbm2ddl.SchemaExportTask">
<classpath refid="runtime.classpath" />
</taskdef>
<schemaexport config="${classes.dir}/hibernate.cfg.xml" quiet="false" text="true" delimiter=";" output="database.sql">
</schemaexport>
</target>

如上,看到quiet="false" text="true" delimiter=";" 了吗
还是要解释一下
quiet=t"rue" 不要把脚本输出到stdout
drop="true" 只进行drop tables的步骤
text="true" 不执行在数据库中运行的步骤
output="database.sql" 把生成的脚本输出到database.sql文件中
config="hibernate,cfg.xml" 从xml文件读取hibernate的配置
properties="hibernate.properties" 从文件读入数据库属性
delemiter=";" 为脚本设置行结束符

注意运行的classpath要包括所有用到的jar还有src源文件(之前弄了多次都不成功,,原因就是没有加入源文件)

 

 

 

成功之后就会看到在 D:\workspace\student下生成了database.sql文件

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多