七.MyBaits基本操作,为什么session.commit()可以引起事物提交?ResultMap结果映射,执行添加后返回自增列的值,多条件查询,智能标签,工具类

1.为什么session.commit()可以引起事务的提交?

首先打开commit()源码,ctrl+H打开它的实现类DefaultSession,找到它的commit方法

ctrl+左键executor,进入它的接口并打开它的实现类BaseExecutor

 

在最底层的commit()方法里边进行了事务的提交,所以SqlSession.commit()方法可以引起事务的提交

 

2.ResultMap结果映射

为什么需要ResultMap?

因为DB中的Table的列名和Java对象中的属性名不一致时需要手工映射

ResultMap实现代码

注:select标签中的resultMap和resultType不允许同时出现

 

3.执行添加后返回自增列的值

首先在insert节点中添加一个selectKey节点配置如下

属性keyProperty的值要和实体类中的id属性一致

 

4.多条件查询

多条件查询可以使用Map集合查询,也可以使用索引号查询

实体类实现代码

 

 5.智能标签

智能标签分为:where ,if ,choose,foreach

where if类似于多重if判断

choose类似于switch结构

foreachArray类型

foreach<自定义>

foreachList类型

 

posted @ 2018-02-24 20:17  徐昌琦  阅读(565)  评论(0编辑  收藏  举报