有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java PostgreSQL使用JDBC写入inet列

PostgreSQL有漂亮的inet类型,但没有对应的JDBC类型。如何使用Java在inet列中存储IP地址

我使用的是MyBatis,不是原始的JDBC,但问题在于JDBC本身


共 (1) 个答案

  1. # 1 楼答案

    这个问题已经在postgresql邮件列表(20012015)以及其他几个地方被问过并回答过多次

    由于JDBC中没有inet,最简单的解决方案是以String形式传递IP地址,然后在查询本身中转换为inet

    在mybatis中,这看起来是这样的:

    public interface MyMapper {
    
        @Insert("INSERT INTO my_table (ip) VALUES (#{ip}::INET)")
        int insert(@Param("ip") String ip);
    
    }
    

    另一种解决方案是将地址封装在一个实现java.sql.SQLData的自定义类中,然后将自己的类作为对象传递