一般用hibernate都是用它的反转功能,就是根据数据表,生成xml,然后再生成pojo的实体,但是我需要反过来搞,要据pojo的实体生成xml.进而生成数据表,能不能这样做,怎样做,有知道的高手给解答下,万分感激

解决方案 »

  1.   

    我只知道可以根据POJO类和对应的xml映射文件可以生成数据库中的表。
      

  2.   

    不能根据pojo类生成xml映射文件,然后再生成表吗?
      

  3.   

    哥  你 另外一个帖子 不是 给你答案了吗!看最后的我的 回答,不需要XML文件 直接注解。就可以自动创建表了。你如果一定要根据pojo 声成xml 文件
    import java.io.File;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.lang.reflect.Field;
    public class kkkk {
    private String ma;
    private String userpassword;
    public String getMa() {
    return ma;
    }
    public void setMa(String ma) {
    this.ma = ma;
    }
    public String getUserpassword() {
    return userpassword;
    }
    public void setUserpassword(String userpassword) {
    this.userpassword = userpassword;
    }
    public static void main(String[] args) throws Exception {
    StringBuilder builder=new StringBuilder();
    StringBuilder builderxml   = new StringBuilder();
    builder.append("create table user (");
    builderxml.append("<? xml version = '1.0' encode='UTF-8'>");
    for(Field a :kkkk.class.getDeclaredFields()){
    if(a.getName().equals("ma")){
    builder.append(" username varchar(10) , ");
    builderxml.append("some  username xml file \n");// please asseme xml by yourself 
    }
    if(a.getName().equals("userpassword")){
    builder.append(" userpassword varchar(20) ");
    builderxml.append("some  userpassword xml file");// please asseme xml by yourself 
    }
    }
    builder.append(")");
    System.out.println(builder.toString());// create   table  sql by pojo 
    File  hbmfile   =  new File("/user.hbm.xml");
    FileWriter fileWriter   = new FileWriter(hbmfile); // create hbm.xml  file by  pojo 
    System.out.println(hbmfile.getAbsolutePath());
    byte[] a  = builderxml.toString().getBytes();
    fileWriter.write(builderxml.toString(), 0, builderxml.toString().length());
    fileWriter.flush();
    fileWriter.close();
    }



    }自己 看看了 
      

  4.   

    还有 一点 非常不理解 你为什么要这么做,在正常的项目中,都是先设计好业务逻辑关系,即数据库表,然后再开始编写代码,一般情况 不允许根据POJO逆向生成,会造成业务关系紊乱,及后期维护困难。如果后期需要加表,说明前期数据库表逻辑关系没有设计好!!!楼主应该是初学者(我也是了)
      

  5.   

    编程发展到今天,一个项目先用UML描述软件需求,转为实体POJO类,再以POJO类来分析系统,才能真正的从面对对象的角度去实现。先建数据表的方式,应当是结构化程序的时代产物。