Closed. This question is off-topic。它目前不接受答案。
想改进这个问题吗?Update the question所以堆栈溢出的值小于aa>。
10个月前关闭。
我的表在Oracle中称为tb_student。它的id是数字(9)。我发现使用jdbctemple搜索id可以由字符串定义。java代码运行良好。但现在我想把数据库从Oracle迁移到PostgreSQL。
迁移之后,java代码出错了。因此,我将id从numeric更改为varchar,并且不需要更改表索引。代码运行良好。但是我的老板说我不应该更改表,我应该更改Java代码,将id类型更改为Long。
哪种方式更好?我应该更改列的数据类型吗?还是应该更改java代码?哪个最好?

最佳答案

你的老板显然是对的,对不起。
数据类型应与实际数据匹配,而不是基于代码中发生的意外选择。
第一个原因是您只能在numeric(9)列中存储整数值,因此不会有字母潜入的危险。此外,请考虑前导零或空格,这会导致值不同,即使它们在数值上是相同的。最后,使用<或类似的查询条件会遇到问题,因为字符串的语义不同。

关于java - 使用id生成器方法将记录插入数据库时​​,哪种数据类型更好? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54289978/

10-11 03:40
查看更多