0

我正在开发我的项目,其中一个没有数据库的大型数据库和表,列有

所以我的计划是做一些事情,比如如果将来我必须更改我的数据库名称或表名或列名,所以我只更改一个地方,并且所有更改都自动完成,其中数据库名称表或列名已被使用。

然后我必须决定使用枚举,因此枚举应该是嵌套的,并且每个属性都可以有它的字符串值,这样只有字符串值的变化才能改变它被使用的所有地方

so please help me some buddy to give me some sample of code samll code by which i can do it for my database 

eg DATABASE->TABLE->COLUMNS
public enum DATABASE
{
    //
}

i want enum sample code for database and nested enums for their tables and one of its  nested enum for their columns please help me...!!! 

i have tried it to find it but not got some thing usefull

好的,我的答案是

public enum DATABASE
{
  DB1(TABLE.TBL1, TABLE.TBL2);

  private final TABLE[] tblArray;
  private DATABASE(TABLE... tables)
  {
    tblArray = tables;
  }
  public TABLE[] getTables()
  {
    return tblArray;
  }
}
public enum TABLE
{
  TBL1(COLUMN.CLMN1, COLUMN.CLMN2), TBL2(COLUMN.CLMN2);

  private final COLUMN[] clmnArray;
  private TABLE(COLUMN... columns)
  {
    clmnArray = columns;
  }
  public COLUMN[] getColumns()
  {
    return clmnArray;
  }
}
public enum COLUMN
{
  CLMN1, CLMN2;
}

实际上我在枚举方面并不完美,所以请告诉我如何访问 DATABASE 、 TABLE 和 COLUMN 意味着如果我想要 DB1->TB1->CLMN2 那么如何编写代码......

4

2 回答 2

1

它不是枚举,但我认为你想要什么:

public abstract class DATABASE
{
   public static class TABLE_ONE
   {
       public static final String NAME = "TableOne";
       public static final String COL_ONE = "COLUMN_ONE";
       public static final String COL_TWO = "COLUMN_TWO";
   }
}

你可以像DATABASE.TABLE_ONE.COL_ONE这样使用它。

为什么我认为这很危险:如果您在此处更改常量,您还必须处理 DB-Updates,并注意人们从您的软件版本升级到另一个版本。所以要小心!

于 2012-12-11T08:15:08.073 回答
0

你可以这样尝试:

public enum DATABASE
{
    DB1(TABLE.TBL1, TABLE.TBL2);

    private final TABLE[] tblArray;
    private DATABASE(TABLE... tables)
    {
        tblArray = tables;
    }
    public TABLE[] getTables()
    {
        return tblArray;
    }
}
public enum TABLE
{
    TBL1(COLUMN.CLMN1, COLUMN.CLMN2), TBL2(COLUMN.CLMN2);

    private final COLUMN[] clmnArray;
    private TABLE(COLUMN... columns)
    {
        clmnArray = columns;
    }
    public COLUMN[] getColumns()
    {
        return clmnArray;
    }
}
public enum COLUMN
{
    CLMN1, CLMN2;
}
于 2012-12-11T08:07:40.243 回答