我应该使用哪种字段类型作为固定宽度的数字?

时间:2011-04-19 03:09:42

标签: java mysql

我的对象中有一个字段,需要固定宽度且只有数字。它将保存诸如0002,0103或1212之类的值。目前,我将我的Java对象定义为字符串,数据库(MySQL)是一个整数,填充为4个字符:laborCode int(4) zerofill。我有几个具有相同模式的其他表,一些有两个字符,有些有四个。这些表是通过自动编号主键链接到其他表的查找表。

在前端,当用户向表中添加数据时,我有一些预先存在的验证,确保用户输入一个数字,因此他们必须输入的全部是2,103或1212.当数据是插入,我没有任何代码留下填充数据和select语句返回填充值。

创建表格之后,我开始想我可能应该将字段定义为char:laborCode char(4)。如果我这样定义它,我需要正确地格式化数据,使用对象的setter方法应该很容易。这种方式对我来说似乎更正确,我的java对象中的字符串值映射到数据库中的字符串值。

使用一种数据类型定义字段是否有任何优点/缺点?

1 个答案:

答案 0 :(得分:1)

就个人而言,我喜欢将数字作为数字留在数据库中。您可以轻松地对它们进行排序/执行其他数字操作。此外,永远不会意外插入字母。

您始终可以在域对象设置器中使用NumberFormat,以确保为对象提供正确格式化的数字。