2011-03-22 56 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