JOOQ + PostgreSQL:如何在插入期间将 String 转换为 Inet 类型

问题描述 投票:0回答:1

准备插入语句以便将表示 IP 地址的字符串插入到“inet”类型的 Postgres 列中的正确方法是什么?

val rDate = LocalDateTime.parse("2018-12-29T02:47:17").toJavaLocalDateTime()
val iDate = LocalDateTime.parse("2018-12-29T22:11:00").toJavaLocalDateTime()
val ip = "192.168.1.10"

dslcontext.insertInto(IP_LIST)
    .columns(IP_LIST.RECV_DATE, IP_LIST.INSERT_DATE, IP_LIST.SENDER_IP)
    .values(rDate, iDate, ip)
    .execute()

我假设cast()应该应用于值'ip',但我一直找不到一个有效的例子。

我已经安装了 jooq 和 org.jooq:jooq-postgres-extensions:3.19.11 并运行正常,并且 可以做选择。

postgresql ip-address jooq
1个回答
0
投票

如果您已将

jooq-postgres-extensions
库放在代码生成器和运行时的类路径上,则无需执行任何特定操作。只需将您的值包装在
org.jooq.postgres.extensions.types.Inet
中并使用它,例如

Inet ip = inet(InetAddress.getByName("192.168.0.1"));

dslcontext.insertInto(IP_LIST)
    .columns(IP_LIST.RECV_DATE, IP_LIST.INSERT_DATE, IP_LIST.SENDER_IP)
    .values(rDate, iDate, ip)
    .execute()
© www.soinside.com 2019 - 2024. All rights reserved.