AppFuse代码生成器(AMP)

来源:互联网 发布:省市区镇四级联动sql 编辑:程序博客网 时间:2024/06/08 07:12

AMP(appfuse maven plugin)

创建一个javaBean

package org.appfuse.model;import javax.persistence.Entity;import javax.persistence.GenerationType;import javax.persistence.Id;import javax.persistence.GeneratedValue;import javax.persistence.Column;import org.apache.commons.lang.builder.EqualsBuilder;import org.apache.commons.lang.builder.HashCodeBuilder;import org.apache.commons.lang.builder.ToStringBuilder;@Entitypublic class Persion extends BaseObject {       private Long id ;       private String firstName ;       private String lastName ;       @Id       @GeneratedValue(strategy = GenerationType.AUTO)       public Long getId() {             return id ;      }       public void setId(Long id) {             this.id = id;      }       @Column(name = "first_name" , length = 50)       public String getFirstName() {             return firstName ;      }       public void setFirstName(String firstName) {             this.firstName = firstName;      }       @Column(name = "last_name" , length = 50)       public String getLastName() {             return lastName ;      }       public void setLastName(String lastName) {             this.lastName = lastName;      }       /**       * @see java.lang.Object#equals(Object)       */       public boolean equals(Object object) {             if (!(object instanceof Persion)) {                   return false ;            }            Persion rhs = (Persion) object;             return new EqualsBuilder().append(this. firstName, rhs.firstName)                        .append( this.id , rhs.id).append( this.lastName , rhs.lastName)                        .isEquals();      }       /**       * @see java.lang.Object#hashCode()       */       public int hashCode() {             return new HashCodeBuilder(248915313, 1539783955)                        .append( this.firstName ).append(this. id).append( this.lastName )                        .toHashCode();      }       /**       * @see java.lang.Object#toString()       */       public String toString() {             return new ToStringBuilder(this).append( "lastName", this.lastName )                        .append( "id", this .id ).append("firstName", this.firstName )                        .toString();      }}

在命令行下运行mvn appfuse:gen -Dentity=Persion,这个POJO的CRUD代码即被生成,并自动添加到项目中。
注意:默认的类名是在 ${groupId}.model.Persion下面,如果想指定一个子包名,需要指定全部路径,不如生成${groupId}.subPackage.model.Persion.   mvn appfuse:gen -Dentity={groupId}.subPackage.model.Persion

hibernate.cfg.xml 添加了Persion 对应的mapping
<hibernate-configuration>
    <session-factory >
        <mapping class ="org.appfuse.model.User" />
        <mapping class ="org.appfuse.model.Role" />
        <mapping class ="com.mapbar.model.Persion" />
    </session-factory >
</hibernate-configuration>

接下来根据这个POJO生成数据表。
在命令行下运行mvn compile hibernate3:hbm2ddl。 
此时数据库中添加了此POJO对应的表。

mvn appfuse:gen-model是appfuse maven plugin(简称AMP)中的一个命令,用以从数据库反向工程生成pojo。

原创粉丝点击