java 1.5:保持db表列名的常量的最佳实践?
技术:
- Java 1.5或1.6
- Hibernate 3.4
为了避免在更改列名或表名时更改多个位置上的列名,我希望有一个常量文件。
我有以下疑问?
一种可能的解决方案是维护一个全局文件,该文件存储数据库中所有表的列名的常量。
喜欢
class DbConstants
{
public static final String EMPLOYEE__PERFORMANCE_DESC="performance_desc";
}
在上面的情况中,employees是表的名称,performance_desc是列名的名称。
因此,如果两个表都有列名,则遵循一种tablename__columnname格式来命名一个常量,以避免两个不同表的两个常量之间发生冲突。
我看到这种方法的一个问题是,随着数据库的增长,此文件中的常量不会增加到数千个,这很难管理。其他问题是如果更改了表名,我必须更改所有表的前缀表名。
假设我将上面示例中的列名称从performance_desc更改为achievement_desc。在这种情况下,我很可能也希望改变常数,即从EMPLOYEE__PERFORMANCE_DESC到EMPLOYEE__ACHIEVEMENT_DESC。因为在这种情况下我需要更改列名和常量名称我没有看到在我的代码中直接使用常量而不是列名的使用尽管有一个好处,在更改常量名称时我可以使用折射来反映常量名称名称在引用的地方更改。
似乎要么没有太多使用常量,要么我错误地使用它。
在项目代码中,我似乎有人为每个表列列表定义一个类来定义常量,如下所示。
public class tbl_Employee
{
public static final PERFORMANCE_DESC=performance_desc;
}
这可以解决一些与全局文件一样的问题,比如表名更改只会导致类名更改。
这个问题的一个主要问题是我使用类仅用于定义不是良好编码实践的常量。
阅读一些有关值字符串Enum的内容而不是int不确定它是否可用于java 1.5或1.6以及是否建议在给定方案中使用它。
定义db常量的最佳做法是什么?
使用db常量真的很有用吗?
如果我像上面提到的那样为每个表使用一个类,我面临的一个问题是命名约定。表的名称和对应的类名称之间应该有什么关系,它们定义表的列的常量。
以上案例仅涵盖列名而非表名的情况。我可能喜欢在代码中使用常量而不是表名,因此应该采用什么方法来定义表名的常量。
经常有人认为,一旦产品或相关版本发布,表名和列名就不会发生太大变化。表名和列名的更改主要发生在开发阶段或功能增强(新版本)期间。避免对表名或列名使用常量是否是强有力的论据?
请建议我如何才能使我的问题更具代表性,或者我错过了哪些问题未被投票?
没有找到相关结果
已邀请:
5 个回复
导力疵谜
这样的宝石来处理逗号拼写将来会发生变化的可能性)。在这一点上,他们转向“使用一次”字符串,没有人敢改变它们。 另一个关于字符串常量的警告 - 韵母作为字符串被编译到你的类中。因此,如果您重新编译常量类,而不是使用该定义的类,则最终可能不会传播新定义。
细屠截殴些
冉案
。是的,它相当脆弱。
超可林
界面。
辅奈