Java 固定宽度数字应使用哪种字段类型?

Java 固定宽度数字应使用哪种字段类型?,java,mysql,Java,Mysql,我的对象中有一个字段,它必须是固定宽度的,并且只能是数字。它将保存0002、0103或1212等值。目前,我的Java对象将此字段定义为字符串,数据库(MySQL)是一个整数,填充为4个字符:laborCode int(4)zerofill。我有两个其他的表,它们有相同的模式,一些有两个字符,一些有四个字符。这些表是通过自动编号主键链接到其他表的查找表 在前端,当用户向表中添加数据时,我有一些预先存在的验证,确保用户输入一个数字,所以他们只需输入2、103或1212。插入数据时,我不需要任何代码

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

在前端,当用户向表中添加数据时,我有一些预先存在的验证,确保用户输入一个数字,所以他们只需输入2、103或1212。插入数据时,我不需要任何代码来左填充数据,select语句返回填充值

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


用一种数据类型定义字段比用另一种数据类型定义字段有什么优点/缺点吗?

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


您可以在域对象设置器中始终使用NumberFormat,以确保数字格式正确,以实现对象的好处。

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


您可以始终在域对象设置器中使用NumberFormat,以确保数字格式正确,以实现对象的好处。

我不担心排序问题,因为企业希望用零填充数字。即使是字符字段也可以正确排序。我不担心排序,因为企业希望用零填充它。即使是字符字段也可以正确排序。