所以我被告知这里的DBA将在我们的MySQL数据库的DECIMAL(39,0)字段中存储IP地址。
如何将其转换为字符串以传递给我们的其他应用程序?
注意:我们的数据库不能再承担任何负载,因此尽可能多的工作需要在Java应用程序中完成。
注2:必须支持IPv6。
答案 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。