当前位置: 代码迷 >> 综合 >> 使用ibatis的iterate标签实现批量插入
  详细解决方案

使用ibatis的iterate标签实现批量插入

热度:99   发布时间:2024-01-24 05:36:03.0

ibatis批量插入(使用iterate标签)

1、要注意版本是否支持foreach,我使用的版本就不支持。如果不支持,会报错,叫你必须指定foreach元素类型。

2、使用iterate的List时,即 parameterClass="java.util.List",总是报错:Excepted java.util.List, but get User.一直没找到是哪配置错误。。。。。?

3、使用iterate的Map时的注意事项

对象User具有属性 Id ,name,age,sex
UserDao.java public void insertBatch(Map<String,List<USer>> userMap);
UserDao.xml

<insert id="insertBatch" parameterClass="java.util.HashMap">

    insert into user_table(ID,NAME,AGE,SEX) values

    <iterate conjunction="," property="userList">

       ( #userList[].id:varchar#,

         #userList[].name:varchar#,

        #userList[].age:integer#,

        #userList[].sex:INTEGER#)

    </iterate>

</insert>

UserService.java

在使用iterate的map时,注意Map的Key与Property属性对应:

 

Map<String,List<User>> userMap=new HashMap<String,List<User>>();

List<User>  list=new ArrayList<User>();

list.add(new User("111","zhangsan",22,1));

list.add(new User("222","lisi",23,0));

...

userMap.put("userList",list);

userDao.insertBatch(userMap);

老项目维护,项目框架里是ibatis,所以,只能用ibatis。

 

  相关解决方案