- 浏览: 110240 次
- 性别:
- 来自: 北京
最新评论
-
ocean1999:
有代码没 想学习哈 邮箱65614435@qq.com ,非常 ...
使用Google app做了个文件上传网站 http://avatar-share.appspot.com -
mywayscut:
很不错。详细介绍下吧,上传到blob的实现的怎么样的
使用Google app做了个文件上传网站 http://avatar-share.appspot.com
1 在编写vo文件时候在类和字段的注释上添加xdoclet使用的信息
import java.util.Calendar; import java.util.Set; import java.io.Serializable; /** * @author Chenhui * @hibernate.class table="TB_User" */ public class User implements Serializable { private static final long serialVersionUID = -4208021481713010569L; private Long userID; private Organization organization;//机构 private Organization department;//部门 private String userSN; private String loginName; private String password; private String userName; private String email; private int sex; private String address; private Calendar birthday; private String postalCode; private String mobilePhone; private String QQ; private String MSN; private int status; private Set groups; private Set privileges; public static final int STATUS_USABLE=1;// ok to use public static final int STATUS_UNABLE=2;// deleted public static final int SEX_MALE=1; public static final int SEX_FEMALE=2; public User(){} public User(long uid){this.userID=uid;} /** * @return the userID * @hibernate.id column="UserID" generator-class="increment" unsaved-value="null" */ public Long getUserID() { return userID; } /** * @param userID the userID to set */ public void setUserID(Long userID) { this.userID = userID; } /** * @return the userSN * @hibernate.property column="UserSN" length="10" non-null="true" unique="true" */ public String getUserSN() { return userSN; } /** * @param userSN the userSN to set */ public void setUserSN(String userSN) { this.userSN = userSN; } /** * @return the loginName * @hibernate.property column="LoginName" length="20" non-null="true" unique="true" */ public String getLoginName() { return loginName; } /** * @param loginName the loginName to set */ public void setLoginName(String loginName) { this.loginName = loginName; } /** * @return the password * @hibernate.property column="Password" length="20" non-null="true" unique="false" */ public String getPassword() { return password; } /** * @param password the password to set */ public void setPassword(String password) { this.password = password; } /** * @return the userName * @hibernate.property column="UserName" length="20" non-null="false" unique="false" */ public String getUserName() { return userName; } /** * @param userName the userName to set */ public void setUserName(String userName) { this.userName = userName; } /** * @return the sex * @hibernate.property column="Sex" */ public int getSex() { return sex; } /** * @param sex the sex to set */ public void setSex(int sex) { this.sex = sex; } /** * @return the email * @hibernate.property column="Email" length="40" non-null="false" unique="false" */ public String getEmail() { return email; } /** * @param email the email to set */ public void setEmail(String email) { this.email = email; } /** * @return the address * @hibernate.property column="Address" length="80" non-null="false" unique="false" */ public String getAddress() { return address; } /** * @param address the address to set */ public void setAddress(String address) { this.address = address; } /** * @return the birthday * @hibernate.property column="Birthday" */ public Calendar getBirthday() { return birthday; } /** * @param birthday the birthday to set */ public void setBirthday(Calendar birthday) { this.birthday = birthday; } /** * @return the postalCode * @hibernate.property column="PostalCode" length="10" non-null="false" unique="false" */ public String getPostalCode() { return postalCode; } /** * @param postalCode the postalCode to set */ public void setPostalCode(String postalCode) { this.postalCode = postalCode; } /** * @return the mobilePhone * @hibernate.property column="MobilePhone" length="20" non-null="false" unique="false" */ public String getMobilePhone() { return mobilePhone; } /** * @param mobilePhone the mobilePhone to set */ public void setMobilePhone(String mobilePhone) { this.mobilePhone = mobilePhone; } /** * @return the qQ * @hibernate.property column="QQ" length="20" non-null="false" unique="false" */ public String getQQ() { return QQ; } /** * @param qq the qQ to set */ public void setQQ(String qq) { QQ = qq; } /** * @return the mSN * @hibernate.property column="MSN" length="40" non-null="false" unique="false" */ public String getMSN() { return MSN; } /** * @param msn the mSN to set */ public void setMSN(String msn) { MSN = msn; } /** * @return the status * @hibernate.property column="Status" */ public int getStatus() { return status; } /** * @param status the status to set */ public void setStatus(int status) { this.status = status; } /** * @return the organization * @hibernate.many-to-one column="OrganizationID" non-null="false" lazy="true" */ public Organization getOrganization() { return organization; } /** * @param organization the organization to set */ public void setOrganization(Organization organization) { this.organization = organization; } /** * @return the department * @hibernate.many-to-one column="DepartmentID" non-null="false" lazy="true" */ public Organization getDepartment() { return department; } /** * @param department the department to set */ public void setDepartment(Organization department) { this.department = department; } /** * @return the groups * Group来管理关联关系,默认不抓取 * @hibernate.set table="TB_UserGroup" cascade="none" inverse="true" lazy="true" * @hibernate.collection-key column="UserID" * @hibernate.collection-many-to-many column="GroupID" * class="com.sst.framework.administration.vo.Group" */ public Set getGroups() { return groups; } /** * @param groups the groups to set */ public void setGroups(Set groups) { this.groups = groups; } /** * @return the privileges * User来管理关联关系,默认不抓取 * @hibernate.set table="TB_UserPrivilege" cascade="all" inverse="false" lazy="true" * @hibernate.collection-key column="UserID" * @hibernate.collection-many-to-many column="PrivilegeID" * class="com.sst.framework.administration.vo.Privilege" */ public Set getPrivileges() { return privileges; } /** * @param privileges the privileges to set */ public void setPrivileges(Set privileges) { this.privileges = privileges; } }
2 编写ant配置文件
注意,hibernate的配置文件不须再包含映射文件,否则会出现重复错误
<?xml version="1.0"?> <project name="administration" default="hibernate" basedir="."> <property name="admin.db" value="mysql"/> <property name="admin.home" value="${basedir}"/> <property name="admin.lib" value="${admin.home}/lib"/> <property name="build.classes" value="${admin.home}/WebRoot/WEB-INF/classes"/> <property name="hibernate.cfg" value="${admin.home}/Docs/hibernate_${admin.db}.cfg.xml"/> <path id="myclasspath"> <fileset dir="${admin.lib}/hibernate3.2.6" includes="**/*.jar"/> <fileset dir="${admin.lib}/xdoclet1.2.3" includes="**/*.jar"/> <fileset dir="${admin.home}/lib" includes="**/*.jar" /> <pathelement path="WebRoot/WEB-INF/classes"/> </path> <!-- ================================================================== --> <!-- == generate Hibernate mappings --> <!-- ================================================================== --> <taskdef name="hibernatedoclet" classname="xdoclet.modules.hibernate.HibernateDocletTask" classpathref="myclasspath" /> <target name="hibernate" description="Generate mapping documents"> <echo>+---------------------------------------------------+</echo> <echo>| |</echo> <echo>| R U N N I N G H I B E R N A T E D O C L E T |</echo> <echo>| |</echo> <echo>+---------------------------------------------------+</echo> <hibernatedoclet destdir="${admin.home}/src" excludedtags="@version,@author,@todo,@see" addedtags="@xdoclet-generated at ${TODAY},@copyright The XDoclet Team,@author XDoclet,@version ${version}" force="false" verbose="true"> <fileset dir="${admin.home}/src"> <exclude name="com/vo/BaseObject.java" /> <include name="com/vo/*.java" /> </fileset> <hibernate validatexml="true" version="3.0"/> </hibernatedoclet> </target> <!-- ================================================================== --> <!-- == generate DDL with hibernate tools --> <!-- ================================================================== --> <target name="gen-ddl" description="Hibernate Tools generate DDL"> <taskdef name="hibernatetool" classname="org.hibernate.tool.ant.HibernateToolTask" classpathref="myclasspath" /> <!-- generate database DDL --> <hibernatetool destdir="${admin.home}/metadata/database"> <classpath> <path location="${admin.home}/webapp/WEB-INF/classes"/> </classpath> <configuration configurationfile="${hibernate.cfg}" > <fileset dir="${admin.home}/src/com/vo"> <include name="**/*.hbm.xml"/> </fileset> </configuration> <hbm2ddl export="false" delimiter=";" format="true" outputfilename="schema_${admin.db}.sql"/> </hibernatetool> </target> </project>
3 运行ant编译生成hbm文件和DDL,注意运行顺序
发表评论
-
访问需要HTTP Basic Authentication认证的资源的各种语言的实现
2011-12-02 12:23 1748无聊想调用下嘀咕的api的时候,发现需要HTTP Bas ... -
设计一个不用OAuth的安全的REST接口
2011-12-02 12:09 2024You want to develop a RESTfu ... -
wordpress 内网外网访问问题
2011-04-08 01:29 4992在实验室的服务器上部署了wordpress,发现在外网访问正常 ... -
Google App Engine 文件上传的代码
2011-03-28 12:52 2112以前写的Google App Engine上传程序,贴出来上传 ... -
使用Google app做了个文件上传网站 http://avatar-share.appspot.com
2010-02-24 12:20 1477使用google app engine开发了一个文件分享网站, ... -
nginx + mongrel 配置文件
2009-12-04 16:25 10051 nginx 配置文件 user hchen; work ... -
GAE paging
2009-11-19 14:51 781Hi all! There's been a lot of g ... -
GAE with spring实践经验
2009-11-16 09:59 912最近看到很多人研究GAE,这周末我也花了两天时间用GAE + ... -
struts2多文件上传
2009-05-14 10:53 1038import java.io.File; import ja ... -
hibernate many-to-many实例
2009-04-24 16:08 2689该实例有两个对象User和Group,User和Group建立 ... -
使用自定义拦截器加载字典表
2009-04-22 17:20 1466使用自定义拦截器可以直接实现接口com.opensymphon ... -
Javascript动态添加,删除表格行的例子
2009-04-18 00:00 1411最近又开始做Web项目,完全又成新手了,几年前就没仔细看过Ja ... -
Struts2 validate
2009-04-17 16:13 1960如何让Validate验证只验证指定的方法? 比如update ...
相关推荐
这篇博客文章“Hibernate使用xdoclet生成映射文件和sql语句”可能详细介绍了如何结合这两个工具进行开发。 在早期的Java开发中,XDoclet是基于Javadoc注解的工具,它可以解析Java类中的特定注解,并根据这些注解...
XDoclet 是一款强大的Java注解处理工具,它允许开发者在Java源代码中添加元数据,这些元数据可以用来自动生成各种配置文件,包括Hibernate的映射文件(hbm.xml)。这种方式极大地提高了开发效率,避免了手动创建和...
### 使用Maven的Xdoclet插件生成Hibernate配置文件 #### 背景与目标 在软件开发过程中,特别是涉及到数据库交互的应用程序中,Hibernate作为一款流行的Java持久层框架,被广泛应用于对象关系映射(ORM)。而在使用...
通过使用 XDoclet 和特定的 Javadoc 标签,我们可以为 iBatis 自动生成 SQL 映射文件,这极大地简化了开发过程并提高了开发效率。这种方式尤其适用于那些具有大量实体类和映射关系的项目,能够显著减少手动编写配置...
* 生成 Hibernate 映射文件:Xdoclet 可以生成 Hibernate 映射文件,用于配置数据库表和 Java 类之间的关系。 * 生成 JavaDoc 文档:Xdoclet 可以生成 JavaDoc 文档,用于描述 Java 类和方法的信息。 * 自动生成配置...
随着Hibernate的发展,它推荐使用注解(Annotation)直接在Java类上进行ORM配置,取代了Xdoclet生成映射文件的方式。因此,尽管Xdoclet仍有一定的实用性,但在现代开发环境中,直接使用Hibernate注解已成为主流。 ...
总之,XDoclet2是Hibernate3开发中一个强大的辅助工具,通过自动化的映射文件生成,它简化了开发流程,减少了手动编写和维护XML配置的工作量,让开发者能更专注于业务逻辑和代码质量。对于大型项目或团队开发来说,...
总之,XDoclet是Java开发中的得力助手,特别是在使用Hibernate时,它能帮助开发者快速生成和维护映射文件,使得代码与数据库之间的关系更加清晰,提升了开发的效率和项目的可维护性。如果想要了解更多关于XDoclet的...
在Java类中,我们只需要添加适当的Javadoc注释,Xdoclet就会根据这些注释生成对应的.hbm.xml映射文件和Hibernate配置文件。而Ant则负责编译源代码、运行Xdoclet以及执行其他构建任务。 具体步骤如下: 1. **设置...
1. **XDoclet**:XDoclet是一款基于JavaDoc的代码生成工具,它可以自动从Java源代码中的注释生成各种元数据,如Java EE的部署描述符、Hibernate的映射文件等。通过使用XDoclet,开发者可以避免手动编写这些重复性的...
本篇文章将详细介绍如何使用Ant和XDoclet来生成Hibernate的HBM(Hibernate Mapping)文件。 首先,Ant是一个基于Java的构建工具,它允许开发者通过XML配置文件来定义构建过程,包括编译、打包、测试等任务。Ant的...
在博文《使用xDoclet自动生成Spring的bean的配置文件》中,作者可能详细介绍了如何配置和使用xDoclet。这可能包括以下几个步骤: 1. **安装xDoclet**:下载xDoclet库并将其添加到项目的构建路径中,如果是Maven项目...
总结起来,这个例子展示了如何利用XDoclet插件从Java持久化类自动生成功能强大的Hibernate映射文件和数据库脚本,极大地简化了开发过程,提高了代码的可维护性。通过这种方式,开发者可以更专注于业务逻辑,而非重复...
xdoclet是一款强大的Java文档注解处理器,它在Java源代码中通过特定的注解(annotations)来自动生成各种配置文件,极大地简化了开发过程,尤其是对于Hibernate等持久层框架的使用者。标题提到的"xdoclet 用于生成*....
当我们在Java类中添加特定的Javadoc标签时,XDoclet会根据这些标签生成相应的Hibernate映射文件(.hbm.xml)和实体类。例如,我们可以使用`@entity`、`@table`、`@id`等标签来定义一个实体类及其与数据库表的关系。 ...
接着,`<hibernate-mapping>`元素是映射文件的根元素,它可以包含多个配置属性,如`schema`、`default-cascade`、`auto-import`和`package`,分别用于指定数据库模式、默认级联行为、是否自动导入类以及Java类的包名...
* 自动生成 Hibernate 的映射文件 * 自动生成 Web.xml 文件 * 自动生成数据库的 DDL 文件 * 自动生成其他配置文件和数据文件 XDoclet 的优点包括: * 提高开发效率 * 减少代码重复 * 提高代码质量 * 提高开发灵活...