在mybatis中插入查询循环

时间:2016-10-05 17:14:39

标签: java oracle mybatis

我有一个像这样的pojo类:

public class Pojo {
    String a;
    String b;
    String c;
    List<Integer>  d;
    public String getA() {
        return a;
    }
    public void setA(String a) {
        this.a = a;
    }
    public String getB() {
        return b;
    }
    public void setB(String b) {
        this.b = b;
    }
    public String getC() {
        return c;
    }
    public void setC(String c) {
        this.c = c;
    }
    public List<Integer> getD() {
        return d;
    }
    public void setD(List<Integer> d) {
        this.d = d;
    }
<insert id="insertPojoval" parameterType="com.Pojo">
insert into abc values(#{a},#{b},#{c},#{d},)
</insert>

如何使用mybatis在一个插入查询中插入此pojo值?

我希望对List<Integer> dab列表c中的每个值进行插入。如何循环List<Integer> d中的每个值?

我在循环列表d中的每个值时遇到问题。

2 个答案:

答案 0 :(得分:0)

您需要查看Oracle Objects和mybatis TypeHandler。看看这个:How to Pass Java List of Objects to Oracle Stored Procedure Using MyBatis?

答案 1 :(得分:0)

您可以使用mybatis“foreach”标签插入集合。但我不确定这是你想要的。请参阅下面的答案并希望它有所帮助。

<insert id="insertPojoval" parameterType="com.Pojo">
        INSERT INTO 
            abc
        VALUES
            <foreach collection="list" item="d" index="index" open="(" separator="),("  close=")">
                #{a},
                #{b},
                #{c},
                #{d}
            </foreach>      
</insert>