如何使用mybatis批注将简单数组插入表字段

时间:2016-09-19 10:14:19

标签: java mysql arrays innodb mybatis

我的课程字段看起来像

private int[] points = new int[]{1,1,1,1};

我的innoDb表看起来像

CREATE TABLE `test` (
    `points` VARCHAR(70) NULL DEFAULT '0' 
)

我尝试在此映射器中插入行(我使用注释)

@Insert({
        "REPLACE INTO test (points)",
        "values (#points},javaType=java.util.Array,typeHandler=org.apache.ibatis.type.ArrayTypeHandler)"
})

并获取java.lang.IllegalStateException: No typehandler found for property points

如何在一个字段中正确插入此数组? 我可以将数组转换为字符串,但我想使用mybatis机会。

1 个答案:

答案 0 :(得分:0)

我看到Mybatis参数片段中的拼写错误,花括号{}:

VALUES ( {#points,javaType=java.util.Array,typeHandler=org.apache.ibatis.type.ArrayTypeHandler}
)

此外,可能需要自定义ArrayTypeHandler实现,无论是格式化还是存储为String(Varchar),或者存储为SQL Array,然后依赖于环境:DB Type / driver,池连接,应用服务器...