您对JavaBean中字段名的命名约定与数据库之间的差距的看法

您对JavaBean中字段名的命名约定与数据库之间的差距的看法,java,database,ibatis,Java,Database,Ibatis,在过去的许多项目中,我观察到人们倾向于将数据库列名保留为两个或三个单词,并用“u”分隔,例如:first_name。但是,同一列被映射到JavaBean的变量:firstName 我不知道为什么人们不保留像firstName这样的数据库字段名,而是倾向于在两者之间使用。即使我们使用iBatis,定义resultmap映射也是一项额外的工作 问候,, Jatan我通常使用firstName,即使是在数据库字段中,它也可以正常工作!然而,使用名字可能有一些很好的理由。可能,dbms、团队或公司的数据

在过去的许多项目中,我观察到人们倾向于将数据库列名保留为两个或三个单词,并用“u”分隔,例如:first_name。但是,同一列被映射到JavaBean的变量:firstName

我不知道为什么人们不保留像firstName这样的数据库字段名,而是倾向于在两者之间使用。即使我们使用iBatis,定义resultmap映射也是一项额外的工作

问候,,
Jatan

我通常使用firstName,即使是在数据库字段中,它也可以正常工作!然而,使用名字可能有一些很好的理由。可能,dbms、团队或公司的数据库可能有名字符号,或者有人可能喜欢这种符号

我通常使用firstName,甚至对数据库字段也是如此,而且效果很好!然而,使用名字可能有一些很好的理由。可能,dbms、团队或公司的数据库可能有名字符号,或者有人可能喜欢这种符号

许多数据库都有不区分大小写的列名和表名(过去的情况甚至比现在更为严重),因此,如果键入
camelCasedColumnName
,实际结果是
camelCasedColumnName
。在这些数据库中,在标识符中使用下划线的可读性要高得多,如果您希望能够以最少的麻烦更改后端数据库,那么即使在区分大小写的数据库中,这也是一种很好的做法


在代码方面,camelCase是Java中字段标识符的约定,但在许多其他语言中,下划线是变量和方法名称的约定。还有一些工具可以在CamelCasedNames、下划线的名称或其他格式之间进行转换,而无需开发人员在处理数据库时进行任何额外的工作。(例如,Ruby的ActiveRecord知道类的
NameLikeThis
映射到数据库中表的
name\u like\u this

许多数据库都有不区分大小写的列和表名(过去的情况甚至比现在更为严重),因此如果键入
camelCasedColumnName
,实际上,您最终得到的是
CAMELCASEDCOLUMNNAME
。在这些数据库中,在标识符中使用下划线的可读性要高得多,如果您希望能够以最少的麻烦更改后端数据库,那么即使在区分大小写的数据库中,这也是一种很好的做法


在代码方面,camelCase是Java中字段标识符的约定,但在许多其他语言中,下划线是变量和方法名称的约定。还有一些工具可以在CamelCasedNames、下划线的名称或其他格式之间进行转换,而无需开发人员在处理数据库时进行任何额外的工作。(例如,Ruby的ActiveRecord知道类的
NameLikeThis
映射到数据库中表的
name\u like\u this

请记住,在多个不同的应用程序之间共享数据库是很常见的。这些应用程序可能是用Java以外的语言编写的(如果你能想象的话)。即使数据库是为一个新的应用程序构建的,将来也可能有其他应用程序与之交互


因此,根据数据库模式的规范(通常意味着不区分大小写和下划线)来命名数据库是有意义的,而不是试图遵守前端语言的约定

请记住,在多个不同的应用程序之间共享数据库是很常见的。这些应用程序可能是用Java以外的语言编写的(如果你能想象的话)。即使数据库是为一个新的应用程序构建的,将来也可能有其他应用程序与之交互


因此,根据数据库模式的规范(通常意味着不区分大小写和下划线)来命名数据库是有意义的,而不是试图遵守前端语言的约定

当映射工具将您的列名USERFIRSTNAME解释为setUserfirstname()getUserfirstname()时,这是一个令人悲哀的现象。我讨厌它!好吧,他们可能假设任何db标识符中的不同单词都会用下划线分隔。我想你可能会说该工具依赖的命名约定不够通用,但作为喜欢在db标识符中加下划线的人,这个问题从来没有真正困扰过我。令人悲哀的是,当映射工具将你的列名USERFIRSTNAME解释为setUserfirstname()getUserfirstname()时,我讨厌它!好吧,他们可能假设任何db标识符中的不同单词都会用下划线分隔。我想你可能会说这个工具依赖于不够通用的命名约定,但是作为喜欢db标识符中下划线的人,这个问题从来没有真正困扰过我。