2011-03-22 66 views
0

嗨 我有表创建代码:jdbc如何插入mysql SET类型?

create table clt (id bigint not null, sources set('A1', 'empty', 'A2', 'A3'), text varchar(50)); 

表已成功创建。

现在我想插入数据:

java.sql.PreparedStatement stmt = null; 
String query = "insert into clt (id, sources, text) values (?, ?, ?)"; 
stmt = conn.prepareStatement(query); 
int it = 0; 
stmt.setLong(++it, 25); 
stmt.setString(++it, "A1, A2"); 
stmt.setString(++it, "some text data"); 
stmt.executeUpdate(); 

和流汗的错误:( 异常:java.sql.SQLException中:数据截断列在第1行

'源' 不来源一切正常。 哪里是我的错?

谢谢。

+0

当你做setString的时候,它是A1的括号吗? – 2011-03-22 21:42:05

+0

可能是因为在架构中,设置的项目是** A1 **,但是在您的语句中尝试添加**(A1)**(可能是问题) – 2011-03-22 21:44:03

+0

@Ike Walker似乎同意。我从未在自己之前使用SET,所以我不确定。 – 2011-03-22 21:45:59

回答

2

摆脱括号周围的括号A1

stmt.setString(++it, "A1"); 
+0

谢谢。它正在工作... – denys 2011-03-22 21:49:39

+0

如何添加两个SET元素? A1和A2 – denys 2011-03-22 21:50:14

+0

'stmt.setString(++ it,“A1,A2”);' – 2011-03-22 21:57:59