0
CREATE TABLE customers
(
first_name character varying(15),
second_name character varying(20),
login character varying(15) NOT NULL,
password character varying(15),
email character varying(40),
gender gender,
register_date date,
date_of_birth date,
address character varying(40),
address_number integer,
town character varying(20),
CONSTRAINT login PRIMARY KEY (login)
)
我有这个表,我创建了性别的枚举,如:Java的枚举和PostgreSQL枚举
CREATE TYPE gender AS ENUM ('F', 'M',);
我试图用PreparedStatement的 插入到客户的数据从日食Java,但有一个错误,例如ERROR:列“gender”是性别类型,但表达式的类型是字符变化的 提示:您将需要重写或转换表达式。
我的Java代码如下所示:
PreparedStatement pre_state;
public enum gendertype {
F,
M;
}
pre_state = conn.prepareStatement("INSERT INTO"
+ " customers VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
pre_state.set(6, gendertype.F.toString());
它可能将其插入为'F':: text,这会导致错误。 – 2013-05-10 23:59:38
好吧,我找到解决方案,它的工作原理 – user2317288 2013-05-11 00:13:57
pre_state = main.conne.conn.prepareStatement(“insert into customers values(?,?,?,?,?,?:: gender,?,?,?,?,? )“); – user2317288 2013-05-11 00:14:13