Mybatis通过insert语句插入Integer数组的方法

表定义:

create table test (

id serial primary key,

val int[]

);

Mapper类的定义:

int insertTest(@Param("valArray") Integer[] valArray);

xml文件:

重点是下面传入自定义的TypeHandler: typeHandler=IntegerArrayTypeHandler



insert into test(val) values (#{valArray,typeHandler=IntegerArrayTypeHandler })

自定义的TypeHandler:

import org.apache.ibatis.type.ArrayTypeHandler;
import org.apache.ibatis.type.JdbcType;

import java.sql.PreparedStatement;
import java.sql.SQLException;

public class IntegerArrayTypeHandler extends ArrayTypeHandler {
    @Override
    public void setNonNullParameter(PreparedStatement ps, int i, Object parameter, JdbcType jdbcType) throws SQLException {
       ps.setArray(i, ps.getConnection().createArrayOf("int", (Integer[])parameter));
    }

}

你可能感兴趣的:(Mybatis通过insert语句插入Integer数组的方法)