`
wlh269
  • 浏览: 458031 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用xdocLet自动生成: 类的映射文件/ hibernate配置文件

阅读更多

1.用户类User对应组织机构中的类Person:使用了一对一唯一外键双向关联映射
2.访问控制列表ACL与User,Role,Module所关联:而Module使用了一对多双向关联映射
3.用户User和角色Role相互关联:user和Role使用了多对多双向映射
4.在模型类中加上@注解
5.运行Ant脚本:build.xml


<?xml version="1.0" encoding="GBK"?>
<project name="OA系统构建脚本" default="生成Hibernate配置文件" basedir=".">

   	<property name="src.dir" value="${basedir}/"/>
   	<property name="build.dir" value="${basedir}/bin"/>
	<property name="xdoclet.home" value="D:/代码库/BJSXT/xdoclet-plugins-1.0.3"/>

   	<!-- Build classpath -->
   	<path id="xdoclet.task.classpath">
      	<fileset dir="${xdoclet.home}/lib">
         	<include name="**/*.jar"/>
      	</fileset>
      	<fileset dir="${xdoclet.home}/plugins">
         	<include name="**/*.jar"/>
      	</fileset>
   	</path>
	<taskdef 
		name="xdoclet"
		classname="org.xdoclet.ant.XDocletTask"
		classpathref="xdoclet.task.classpath"
	/>
	
	<target name="生成Hibernate配置文件">
		<xdoclet>
			<fileset dir="${src.dir}/com/wlh/oa/model">
				<include name="**/*.java"/>
			</fileset>			
			<component
				classname="org.xdoclet.plugin.hibernate.HibernateConfigPlugin"
				destdir="${src.dir}"
				version="3.0"
				hbm2ddlauto="update"
				jdbcurl="jdbc:mysql://127.0.0.1/oa"
				jdbcdriver="com.mysql.jdbc.Driver"
				jdbcusername="root"
				jdbcpassword="bjsxt"
				dialect="org.hibernate.dialect.MySQLDialect"
				showsql="true"
			/>
		</xdoclet>
	</target>
	<target name="生成hibernate映射文件">
		<xdoclet>
			<fileset dir="${src.dir}/com/wlh/oa/model">
				<include name="**/*.java"/>
			</fileset>
			<component 
				classname="org.xdoclet.plugin.hibernate.HibernateMappingPlugin"
				version="3.0"
				destdir="${src.dir}"
			/>
		</xdoclet>
	</target>
</project>







package com.wlh.oa.model;

import java.util.Date;

/**
 * 
 * @author Administrator
 * @hibernate.class table="T_User"
 */
public class User {
	
	/**
	 * @hibernate.id
	 * 		generator-class="native"
	 */
	private int id;
	
	/**
	 * @hibernate.property 	
	 * 		unique="true"
	 * 		not-null="true"
	 */
	private String username;
	
	/**
	 * @hibernate.property
	 * 		not-null="true"
	 */
	private String password;
	
	/**
	 * @hibernate.property
	 */
	private Date createTime;
	
	/**
	 * @hibernate.property
	 */
	private Date expireTime;
	
	/**
	 * @hibernate.many-to-one unique="true"
	 */
	private Person person;
	
	}



package com.wlh.oa.model;

/**
 * 
 * @author Administrator
 * @hibernate.class table="T_Role"
 */
public class Role {
	
	/**
	 * @hibernate.id
	 * 		generator-class="native"
	 */
	private int id;
	
	/**
	 * @hibernate.property
	 */
	private String name;
	}


package com.wlh.oa.model;

/**
 * 
 * @author Administrator
 * @hibernate.class table="T_UsersRoles"
 */
public class UsersRoles {
	
	/**
	 * @hibernate.id generator-class="native"
	 */
	private int id;
	
	/**
	 * @hibernate.many-to-one
	 */
	private Role role;
	
	/**
	 * @hibernate.many-to-one
	 */
	private User user;
	
	/**
	 * @hibernate.property
	 */
	private int orderNo;
	
	}

package com.wlh.oa.model;

import java.util.Set;


/**
 * 
 * @author Administrator
 * @hibernate.class table="T_Module"
 */
public class Module {
	
	/**
	 * @hibernate.id
	 * 		generator-class="native"
	 */
	private int id;
	
	/**
	 * @hibernate.property
	 */
	private String name;
	
	/**
	 * @hibernate.property
	 */
	private String url;
	
	/**
	 * @hibernate.property
	 */
	private int orderNo;
	
	/**
	 * @hibernate.property
	 */
	private String sn;
	
	/**
	 * @hibernate.many-to-one column="pid"
	 */
	private Module parent;
	
	/**
	 * @hibernate.set lazy="extra" inverse="true"
	 * @hibernate.key column="pid"
	 * @hibernate.one-to-many class="com.bjsxt.oa.model.Module"
	 */
	private Set children;
	
	}


package com.wlh.oa.model;

/**
 * 
 * @author Administrator
 * @hibernate.class table="T_ACL"
 */
public class ACL {
	
	public static final String TYPE_ROLE = "Role";
	public static final String TYPE_USER = "User";
	
	/**
	 * @hibernate.id generator-class="native"
	 */
	private int id;
	
	/**
	 * @hibernate.property
	 */
	private String principalType;
	
	/**
	 * @hibernate.property
	 */
	private int principalId;
	
	/**
	 * @hibernate.property
	 */
	private int moduleId;
	
	/**
	 * @hibernate.property
	 */
	private int aclState;
	
	/**
	 * @hibernate.property
	 */
	private int aclTriState;
	
	/**
	 * ACL的状态为继承(即无效,判断的时候应该判断其所属角色的授权)
	 */
	public static final int ACL_TRI_STATE_EXTENDS = 0xFFFFFFFF;
	
	/**
	 * ACL的状态为不继承(即有效,判断的时候,直接根据aclState判断授权)
	 */
	public static final int ACL_TRI_STATE_UNEXTENDS = 0;
	
	/**
	 * 授权允许
	 */
	public static final int ACL_YES = 1;
	
	/**
	 * 授权不允许
	 */
	public static final int ACL_NO = 0;
	
	/**
	 * 授权不确定
	 */
	public static final int ACL_NEUTRAL = -1;
	
		
	public void setPermission(int permission,boolean yes){
		int temp = 1;
		temp = temp << permission;
		if(yes){
			aclState |= temp;
		}else{
			aclState &= ~temp;
		}
	}
	
	public int getPermission(int permission){
		if(aclTriState == ACL_TRI_STATE_EXTENDS){
			return ACL_NEUTRAL;
		}
		
		int temp = 1;
		temp = temp << permission;
		temp &= aclState;
		if(temp != 0){
			return ACL_YES;
		}
		return ACL_NO;
	}
	
	/**
	 * 设置ACL的继承状态
	 * @param yes true标识继承,false表示不继承
	 */
	public void setExtends(boolean yes){
		if(yes){
			aclTriState = ACL_TRI_STATE_EXTENDS;
		}else{
			aclTriState = ACL_TRI_STATE_UNEXTENDS;
		}
	}
}


分享到:
评论

相关推荐

    Hibernate使用xdoclet生成映射文件和sql语句

    《使用Hibernate和XDoclet生成映射文件与SQL语句详解》 在Java开发中,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。然而,为了实现对象与数据库表之间的映射,我们需要编写XML映射...

    用maven的xdoclet插件t生成hibernate配置文件

    ### 使用Maven的Xdoclet插件生成Hibernate配置文件 #### 背景与目标 在软件开发过程中,特别是涉及到数据库交互的应用程序中,Hibernate作为一款流行的Java持久层框架,被广泛应用于对象关系映射(ORM)。而在使用...

    Xdoclet入门基础教程

    4. 生成配置文件:使用 Xdoclet 生成对应的配置文件,如 Hibernate 映射文件。 Xdoclet 的优点 Xdoclet 有以下优点: * 自动生成配置文件:Xdoclet 可以根据 Java 代码生成对应的配置文件,减少手动编写配置文件...

    Xdoclet生成*.hbm.xml映射文件

    随着Hibernate的发展,它推荐使用注解(Annotation)直接在Java类上进行ORM配置,取代了Xdoclet生成映射文件的方式。因此,尽管Xdoclet仍有一定的实用性,但在现代开发环境中,直接使用Hibernate注解已成为主流。 ...

    XDoclet 与Hibernate 映射

    XDoclet 是一款强大的Java注解处理工具,它允许开发者在Java源代码中添加元数据,这些元数据可以用来自动生成各种配置文件,包括Hibernate的映射文件(hbm.xml)。这种方式极大地提高了开发效率,避免了手动创建和...

    Hibernate配置文件中映射元素详解

    【Hibernate配置文件中映射元素详解】 在对象关系映射(ORM)框架Hibernate中,对象与数据库表之间的关联是通过一个XML配置文件来定义的。这个XML文件包含了映射元素,用于描述Java类如何转化为数据库中的表。映射...

    XDoclet插件包以及从Java持久化类生成hibernate mapping小例子

    总结起来,这个例子展示了如何利用XDoclet插件从Java持久化类自动生成功能强大的Hibernate映射文件和数据库脚本,极大地简化了开发过程,提高了代码的可维护性。通过这种方式,开发者可以更专注于业务逻辑,而非重复...

    XDoclet2辅助开发hibernate3

    在Hibernate3的上下文中,XDoclet2可以从类和接口的JavaDoc注释中提取信息,然后自动创建对应的Hibernate配置文件,如hibernate.cfg.xml和.hbm.xml文件,极大地提高了开发效率和准确性。 使用XDoclet2的步骤大致...

    ant hibernate mapping 生成映射文件 生成配置文件

    请把这个文件解压后方到一个盘下面.在build.xml中的 &lt;property name="xdoclet.home" value="D:/jarpackage/xdoclet-plugins-1.0.3"/&gt; 指出这个文件存放的位置....在构建域对象的时候一定要指明在配置文件中的配置信息..

    Xdoclet介绍及示例.........

    1. **ORM映射文件生成**:使用Xdoclet可以根据Java实体类自动生成对应的ORM映射文件,例如Hibernate的`.hbm.xml`文件。 2. **Web服务文档**:对于复杂的Web服务接口,可以使用Xdoclet自动生成WSDL文件或其他相关的...

    Ant结合Xdoclet 实例教程(之整合 Hibernate)

    在Java类中,我们只需要添加适当的Javadoc注释,Xdoclet就会根据这些注释生成对应的.hbm.xml映射文件和Hibernate配置文件。而Ant则负责编译源代码、运行Xdoclet以及执行其他构建任务。 具体步骤如下: 1. **设置...

    Ant+XDoclet生成hbm文件

    在使用Ant和XDoclet生成HBM文件的过程中,通常包含以下几个步骤: 1. **配置XDoclet插件**:在Ant的build.xml文件中,我们需要添加一个xdoclet任务。这通常涉及到引入xdoclet的JAR文件作为依赖,并配置任务参数,如...

    精通代码生成器XDoclet.doc

    * 自动生成 Hibernate 的映射文件 * 自动生成 Web.xml 文件 * 自动生成数据库的 DDL 文件 * 自动生成其他配置文件和数据文件 XDoclet 的优点包括: * 提高开发效率 * 减少代码重复 * 提高代码质量 * 提高开发灵活...

    xdoclet 用于生成*.hbm.xml

    xdoclet是一款强大的Java文档注解处理器,它在Java源代码中通过特定的注解(annotations)来自动生成各种配置文件,极大地简化了开发过程,尤其是对于Hibernate等持久层框架的使用者。标题提到的"xdoclet 用于生成*....

    Xdoclet入门教程

    Xdoclet 是一款开源工具,它允许开发者在 Java 源代码中使用特殊的 Javadoc 注释来生成各种元数据,例如 Java EE 应用服务器的部署描述符、Hibernate 映射文件等。这种方式使得代码与配置文件之间的耦合度降低,同时...

    Hibernate 的Xdoclet模板

    而Xdoclet则是用于自动生成Java源代码和配置文件的工具,它能够根据注释自动创建Hibernate所需的XML配置文件,比如`hibernate.cfg.xml`和`*.hbm.xml`。在早期,Xdoclet广泛用于简化Hibernate项目,避免手动编写大量...

    XDOCLET的使用例子

    它通过解析Java源代码中的Javadoc注释,自动生成各种文件,如部署描述符(Deployment Descriptor)、持久化映射文件(Hibernate Mapping Files)、EJB组件接口和服务端的类代码等。这款工具广泛应用于Java EE开发,...

    新建 Micro用ant执行POJO自动生成映射文件及数据表soft Word 文档

    - **Ant build文件**:编写Ant脚本以自动化生成映射文件及数据表。需将所需的JAR包放置在`WebRoot/WEB-INF/lib/`目录下。 - **执行命令**:在命令行中运行Ant脚本,完成映射文件和数据表的生成。 ##### 4. 反身关联...

Global site tag (gtag.js) - Google Analytics