Java Web开发中可否自动生成结构一致的代码?

采用 Spring + Hibernate + JSTL 开发web项目。

一个表 对应一个 PO,一个Validator,一个VO 和 一个表单(其实是两个,一个新增,一个编辑)

这些POs, VOs, Validators, Forms,全都依赖于表的数据

除了表的数据不一致外,其框架与操作惊人的一致

考虑,基于一个表,是否可以动态生成这些呢?

比如,一个客户表单:

其数据库建表SQL如下:

create table customer (id int identity not null, address varchar(100) null, age int not null, answer varchar(50) null, email varchar(50) null, gender varchar(8) null, intOptional int not null, password varchar(50) null, phone varchar(50) null, question varchar(100) null, realname varchar(20) null, registerTime datetime null, strOptional varchar(100) null, username varchar(50) null, status int not null, score int not null, sd int not null, role int not null, primary key (id));

对应的PO如下:

package  net.kofsky.nmis.po;

import  java.io.Serializable;
import  java.sql.Timestamp;

/** */ /**
 * 用户信息
 * 
@author kofsky
 * 
 * @hibernate.class table="customer"
 * 
 
*/

public   class  Customer  implements  Serializable  ... {
    
    
private static final long serialVersionUID = 1310607107787515532L;
    
    
/** *//**
     * ID
     
*/

    
private int id;
    
    
/** *//**
     * 用户登录姓名
     
*/

    
private String username;

    
/** *//**
     * 用户真实姓名
     
*/

    
private String realname;
    
    
/** *//**
     * 密码
     
*/

    
private String password;

    
/** *//**
     * 性别
     
*/

    
private String gender;
    
    
/** *//**
     * 年龄
     
*/

    
private int age;
    
    
/** *//**
     * 联系电话
     
*/

    
private String phone;
    
    
/** *//**
     * 联系地址
     
*/

    
private String address;
    
    
/** *//**
     * email
     
*/

    
private String email;
    
    
/** *//**
     * 密码提示问题
     
*/

    
private String question;
    
    
/** *//**
     * 密码提示问题的答案
     
*/

    
private String answer;
    
    
/** *//**
     * 用户注册时间
     
*/

    
private Timestamp registerTime;
    
    
/** *//**
     * 用户的当前状态
     
*/

    
private int status;
    
    
/** *//**
     * 用户积分
     
*/

    
private int score;
    
    
/** *//**
     * 可选
     
*/

    
private String strOptional;
    
    
/** *//**
     * 可选
     
*/

    
private int intOptional;
    
    
/** *//**
     * 序列号:备用ID
     
*/

    
private int sd;
    
    
/** *//**
     * 用户的角色
     
*/

    
private int role;

    
/** *//**
     * @hibernate.id column="id" type="java.lang.Integer"
     *               generator-class="native"
     
*/

    
public int getId() ...{
        
return id;
    }


    
public void setId(int id) ...{
        
this.id = id;
    }


    
/** *//**
     * @hibernate.property column="address" type="java.lang.String" length="100"
     
*/

    
public String getAddress() ...{
        
return address;
    }


    
public void setAddress(String address) ...{
        
this.address = address;
    }


    
/** *//**
     * @hibernate.property column="age" type="java.lang.Integer" not-null="true"
     
*/

    
public int getAge() ...{
        
return age;
    }


    
public void setAge(int age) ...{
        
this.age = age;
    }


    
/** *//**
     * @hibernate.property column="answer" type="java.lang.String" length="50"
     
*/

    
public String getAnswer() ...{
        
return answer;
    }


    
public void setAnswer(String answer) ...{
        
this.answer = answer;
    }


    

你可能感兴趣的:(java,spring,数据结构,Web,Hibernate)