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

标签 java mysql arrays innodb mybatis

我的类(class)字段看起来像

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:找不到属性点的类型处理程序

如何正确地将这个数组插入到一个字段中? 我可以将数组转换为字符串,但我想利用 mybatis 的机会。

最佳答案

我在大括号 {} 上的 Mybatis 参数代码片段中发现拼写错误:

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

此外,可能需要自定义 ArrayTypeHandler 实现,要么用于格式化,因为此处将其存储为字符串(Varchar),要么如果存储为 SQL 数组,则取决于环境:数据库类型/驱动程序、池连接、应用服务器...

关于java - 如何使用mybatis注释将简单数组插入表字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39570613/

相关文章:

java - 如何将java监听接口(interface)从localhost更改为IP地址?

java - 树搜索功能没有给出预期的结果

php - 绕过 mysql_real_escape_string() 的 SQL 注入(inject)

mysql - 具有相同列的两个重复索引

C++ std::array 警告

java - 使用 char 数组将十进制转换为二进制、八进制、十六进制

java.lang.IllegalArgumentException 错误处理

java - Ant 条件属性扩展未按预期工作

PHP 准备语句;奇怪的结果

php - 获取所有类别(多级)