java - 使用java api在postgres自定义类型字段中插入值

标签 java postgresql

我的 postgreSQL 数据库实例中有一个类型作为“指定”。 我有一个名为“Prof”的表,其中有一列“designation”类型为“designation”。 我想使用 java 将值插入此列。

代码片段:

insProf.setInt(1, id);
insProf.setInt(2, univ_id);
insProf.setString(3, desg);
int rs_insProf = insProf.executeUpdate();

输出错误:

Enter designation: org.postgresql.util.PSQLException: ERROR: invalid input value for enum designation: ""

请在语法方面提供帮助,我不知道如何最好地处理这个问题。

最佳答案

您可以使用 setObject() 和 getObject() 方法。

https://docs.oracle.com/javase/7/docs/api/java/sql/PreparedStatement.html#setObject(int,%20java.lang.Object)

看看 setObject() 和 getObject()。

根据文档,“如果对象属于实现 SQLData 接口(interface)的类,则 JDBC 驱动程序应调用 SQLData.writeSQL 方法将其写入 SQL 数据流。”

因此您可以通过创建实现 SQLData 接口(interface)的自定义类来创建自己的类型。

另外,不要忘记将您的自定义类型注册到驱动程序的类型映射中。

还有教程:​​https://docs.oracle.com/javase/tutorial/jdbc/basics/sqlcustommapping.html

关于java - 使用java api在postgres自定义类型字段中插入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43086185/

相关文章:

java - 是否可以使用 run-forked 从不同的 JVM 运行 Jetty?

c# - Java DecimalFormat 的 c# 等价物是什么?

sql - 我的 Postgres 插入或更新查询出了什么问题

sql - 从表 A 中选择在表 B 中至少有 X 条记录的记录

ruby-on-rails - 如何在事件记录中编写子查询?

java - 无法在 webrtc android 客户端中添加远程 session 描述

java - AWS实例访问错误:事务请求服务器关闭事务之前的连接

postgresql - 带换行符的列名

java - 无法从 JNI 调用带有 ArrayList 对象的 Java API

python - 在不同的整数类型中保存相同的值有什么区别吗?