Java jdbc如何插入mysql集类型?

Java jdbc如何插入mysql集类型?,java,mysql,jdbc,Java,Mysql,Jdbc,嗨 我有一个创建表的代码: 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 = co

嗨 我有一个创建表的代码:

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行“sources”列的数据被截断

没有来源一切都好。 我的错在哪里


谢谢。

去掉
A1
周围的括号:

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

去掉
A1周围的括号

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

当您执行设置字符串时,是否是A1周围的括号?可能是因为在模式中,设置项是A1,但在您的语句中,您尝试添加(A1)(偏执可能是问题所在)来自@Ike Walker的答案似乎是同意的。我之前从未使用过SET,所以我不确定。在执行setString时,是否是A1周围的括号?可能是因为在模式中,SET项是A1,但在您的语句中,您尝试添加(A1)(偏执可能是问题所在)来自@Ike Walker的答案似乎同意。我以前从未使用过SET,所以我不确定。如何添加SET的两个元素?A1和A2
stmt.setString(++it,“A1,A2”);
如何添加SET的两个元素?A1和A2
stmt.setString(++it,“A1,A2”);