Java:如何将MySQL DECIMAL(39,0)IP地址转换为String

时间:2009-09-21 23:17:08

标签: java mysql networking

所以我被告知这里的DBA将在我们的MySQL数据库的DECIMAL(39,0)字段中存储IP地址。

如何将其转换为字符串以传递给我们的其他应用程序?

注意:我们的数据库不能再承担任何负载,因此尽可能多的工作需要在Java应用程序中完成。

注2:必须支持IPv6。

2 个答案:

答案 0 :(得分:5)

使用

INET_NTOA

例如:SELECT INET_NTOA(num)AS ipaddr;

INET_ATON

例如:INSERT INTO addrTbl VALUES(...,INET_ATON('192.168.0.1'),...)

这是有效的,因为IPv4最初设计为将IP地址定义为32位数字。 dot-decimal notation是为了可读性。

<强>更新

如果您希望在Java中执行从数字到点十进制表示法的转换,MindProd site has an example

答案 1 :(得分:-1)

问题解决了,我说服数据库人员只将它存储为VARCHAR。