码迷,mamicode.com
首页 > 其他好文 > 详细

MyBatis(三)

时间:2018-02-25 17:29:31      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:返回   each   问题   数据库   为什么   返回值   tin   执行   自定义   

 

1.session.commit()为什么会引起事物的提交?

  先ctrl+鼠标左键点入commit方法中,然后ctrl+H找到DefaultSqlSession这个类,在这个类中找到如下的方法技术分享图片

然后进入技术分享图片这个方法

技术分享图片

这里有一个逻辑关系表达式,运算的顺序是  &&  ||  !的顺序依次运算得到的结果是true,那么该方法的返回值是true

技术分享图片

所以执行器的提交,会引起事务的提交

2.session.close()会引起事务的回滚?(同上述方法相似,一步一步往上一层找,就可以找到答案,看到它底层的代码)

最终找到

技术分享图片

可以得到session.close()会引起事务的回滚

3.resultMap结果映射

  在这需要注意的是resultType和resultMap不能同时存在(记住)

  它主要解决了什么问题呢?

  解决数据库表中Table中的字段和Java实体类中的字段名称不一致问题,需要我们手工映射

以查询语句为例

在小配置中首先添加一个节点<resultMap>

技术分享图片

在sql语句的节点中resultType属性要改为resultMap他的值为上面resultMap节点的id的值

技术分享图片

然后在大配置中也需要添加一个节点<settings>

技术分享图片

技术分享图片这个的属性值有三个:NONE,PARTIAL(默认),FULL

4.添加后返回自增列的值

技术分享图片

技术分享图片

实现的结果为

技术分享图片

5.多条件查询

多条件查询有两种方式Map  和 根据索引

首先第一种Map

技术分享图片

技术分享图片

技术分享图片

第二种 根据索引号Index

技术分享图片

技术分享图片

技术分享图片

6.智能标签

智能标签有 if  where  foreach  list array

(1)智能标签if where结合

首先声明方法在接口中

技术分享图片

然后再小配置中添加节点

技术分享图片

最后编写测试类  测试方法

技术分享图片

(2)智能标签foreach array

首先声明方法在接口中

技术分享图片

然后再小配置中添加节点

技术分享图片

最后编写测试类  测试方法

技术分享图片

(3)list<Integer>

技术分享图片

 

技术分享图片

 

技术分享图片

(4)list<自定义>

技术分享图片

技术分享图片

技术分享图片

7.util包:工具类

首先要先创建一个util包,MyBatisUtil类

技术分享图片

MyBatisUtil类中

技术分享图片

 

MyBatis(三)

标签:返回   each   问题   数据库   为什么   返回值   tin   执行   自定义   

原文地址:https://www.cnblogs.com/my-123/p/8469460.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!