如何将数据类型从mysql设置为java

时间:2015-11-24 15:34:40

标签: java mysql java-ee

所以这是我的问题。我创建了一个表,其中包含mysql DB中的SET数据类型列。 我想得到这个(SET)列的值。

我已完成所有连接配置,一切都在我的代码上运行良好。

如何在Set java object ????

中获取带有resultSet的Set dataType

我已经尝试过了。

Java bean代码

public class Valeur {
private Long id;
private Set categoriesValues = new HashSet();
\\getters and setters for the id and the categoriesValues
}

ReultSet代码

 private static Valeur map(ResultSet resultSet) throws SQLException {

        Valeur valeur = new Valeur();
        valeur.setId(resultSet.getLong("id"));
    valeur.setCategoriesValues(resultSet.getString("categoriesValues"));

        return valeur;
    }

ResultSet适用于id,但不适用于Set类型。

由于

2 个答案:

答案 0 :(得分:4)

根据https://dev.mysql.com/doc/connector-j/en/connector-j-reference-type-conversions.html mysql set列映射到Java字符串。

似乎您需要自己拆分返回值以将其转换为Java集。

在您的示例中(未经测试):

String values = resultSet.getString("categoriesValues");
HashSet<String> valuesSet = new HashSet<>();
Collections.addAll(valuesSet , values.split(","));
valuer.setCategoriesValues(valuesSet );

答案 1 :(得分:0)

由于它没有在java.sql.Types中表示,我猜它有点使用,自定义类型在许多RDBMS中都不受支持&#39;

话虽这么说,要检索它可能的值:

ResultSet.getArray(...)

或者

ResultSet.getObject(...)

获取对象。我猜你是否必须手动将它打包到java.util.Set(或者getObject()可能会返回java.util.Set?)