iBATIS入门知识进阶三
通过第一个示例的练习,我们对ibatis这个持久层的框架已经有了初步的了解。其主要工作是在实体对象的CRUD的xml映射配置文件中(User.xml),那么接着我们就来看看它的映射配置文件中的一些标签的使用及含义(基于第一个示例基础上的)
1、如何获得刚插入记录的自增长ID值?
insert语句默认插入一条记录的返回值为object类型的,我们可以使用selectKey来设置它的返回值的内容,select @@identity as ID这是查询自动生成的主键ID的值。
在User.xml文件:
测试代码:
insertUser使用了parameterClass,所以必需传入User类型的对象
利用parameterMap,可以定义参数对象的属性如何映射到SQL查询语句的动态参数上,注
意parameterMap中<parameter/>标签的先后顺序不能颠倒!
测试代码:
写入xml的方式是采用dom4j
同样利用dom4j读取xml文件(必须插入数据表的一条记录)List list = (List)sqlMapper.queryForList("selectMapUsers");System.out.println(list);for (Iterator iter = list.iterator(); iter.hasNext();) {Map map = (Map) iter.next();//可在此输出map的数据}
注意:这里写的SQL语句一定要注意参数的位置,必须插入数据表中的字段顺序保持一致,否则插入到数据表中的数据错位不准确,map映射是将表的一条记录的字段名作为key,字段值做map的值,查询时,结果是一个map类型的数组。
8、事务处理
可以使用sqlMapClient的startTransaction/commitTransaction/endTransaction等方法来控制事务的边界。
如果与spring整合(这是iBatis推荐的方式),则我们需要在spring配置文件中指定其事务特性。