iBatis2 实现 增 删 改 查
在最近两年项目开发中 一直都是使用hibernate做数据持久层 我个人练习是使用了iBatis2 灵活的sql 半自动化的ORM 下面是我作为一名初学iBatis的源代码
sqlConfig.xml 配置iBatis访问数据库
user.xml iBatis 配置SQL
select LAST_INSERT_ID() as id
</selectKey>
INSERT INTO Person (name,address,age)
VALUES
<foreach collection="<span style="color: #ff0000;">persons</span>" item="item" index="index"
separator=",">
(#{item.name},#{item.address},#{item.age})
</foreach>
</insert></pre>
<p>?</p>
<p>code部分</p>
<pre name="code" + i);
tmp.setAge(i);
persons.add(tmp);
}
Map<String,List<Person>> map = new HashMap<String, List<Person>>();
map.put("<span style="color: #ff0000;">persons</span>", persons);
SqlSession session = MyFactory.sessionFactory().openSession();
PersonMapper personMapper = session.getMapper(PersonMapper.class);
personMapper.insertPersons(map);
session.commit();
for (Person person : persons) {
System.out.println(person.getId());
}
}</pre>
<p>?</p>
<p>现在能确保batch insert是ok的,但是key value没有返回到person.id里</p>
<p> 特意debug后发现key value实际已经由mybatis获取到,但是并未set到person.id里? @_@</p> 5 楼 zzy7182 2011-06-30 调用insert方法后,会返回生成的主键的值。