Java:如何将MySQL DECIMAL(39,0)IP地址转换为字符串
问题描述:
因此,我被告知DBA将在我们的MySQL数据库的DECIMAL(39,0)字段中存储IP地址。Java:如何将MySQL DECIMAL(39,0)IP地址转换为字符串
我该如何将其转换为字符串以传递给我们的其他应用程序?
注意:我们的数据库不能承担更多的负载,因此尽可能多的工作需要在Java应用程序中完成。
注2:IPv6支持是必须的。
答
问题解决了,我说服数据库人员把它作为一个VARCHAR来存储。
答
使用
INET_NTOA
例如:SELECT INET_NTOA(NUM)AS IPADDR;
和
INET_ATON
如:(...,INET_ATON( '192.168.0.1'),...)
这工作,因为IPv4的最初被设计为具有IP地址定义INSERT INTO addrTbl VALUES作为32位数字。 dot-decimal notation用于可读性。
更新
如果您希望从数执行转换Java中的点分十进制的MindProd site has an example。
我正在尝试构建一个IPv6号码来解决转换器。就像我之前说的那样,BigDecimal(映射到MySQL DECIMAL类型)是可行的,但它是一个棘手的问题。 – 2009-09-22 02:55:12