Mybatis三

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(默认),FULL4.添加后返回自增列的值

实现的结果为

5.多条件查询

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

首先第一种Map

第二种 根据索引号Index

6.智能标签

智能标签有 if  where  foreach  list array

(1)智能标签if where结合

首先声明方法在接口中

然后再小配置中添加节点

最后编写测试类  测试方法

(2)智能标签foreach array

首先声明方法在接口中

然后再小配置中添加节点

最后编写测试类  测试方法

(3)list<Integer>

原文地址:https://www.cnblogs.com/a157/p/8476961.html

时间: 2024-10-01 01:08:54

Mybatis三的相关文章

Mybatis(三) 映射文件详解

前面说了全局配置文件中内容的详解,大家应该清楚了,现在来说说这映射文件,这章就对输入映射.输出映射.动态sql这几个知识点进行说明,其中高级映射(一对一,一对多,多对多映射)在下一章进行说明. 一.输入映射 输入映射:配置statement中输入参数的类型.有四种 1.1.传递简单类型,八大基本类型,比如int类型 findUserById:根据id进行查询对应user,那么传入的就应该是int类型的值.所以使用别名int来映射传入的值 1.2.传递pojo(代表正常的对象,比如user的jav

关于Mybatis三种批量插入方式对比

第一种:普通for循环插入 @Test public void testInsertBatch2() throws Exception { long start = System.currentTimeMillis(); User user; SqlSession sqlSession = sqlSessionTemplate.getSqlSessionFactory().openSession(false); UserDao mapper = sqlSession.getMapper(User

浅谈Mybatis(三)

一.动态SQL 1.sql片段 解决sql语句的冗余代码问题. <sql id="SELECT_T_USER"> select id,name,password,birthday </sql> <select id="queryUserById" resultType="User"> <include refid="SELECT_T_USER"/> from t_user whe

spring与mybatis三种整合方法

1.采用MapperScannerConfigurer,它将会查找类路径下的映射器并自动将它们创建成MapperFactoryBean.spring-mybatis.xml: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.

转:spring与mybatis三种整合方法

哎,csdn没转载功能,只能复制了.. 本文主要介绍Spring与Mybatis三种常用整合方法,需要的整合架包是mybatis-spring.jar,可通过链接http://code.google.com/p/mybatis/下载到. 1.采用数据映射器(MapperFactoryBean)的方式,不用写mybatis映射文件,采用注解方式提供相应的sql语句和输入参数.  (1)Spring配置文件: <!-- 引入jdbc配置文件 -->     <context:property

Mybatis (三)

1 Mybatis的动态SQL简介 动态SQL是Mybatis强大的特性之一,极大的简化我们拼接SQL的操作. 动态SQL元素和使用JSTL或其他类似基于XML的文本处理器相似. Mybatis采用功能强大的OGNL表达式来简化操作. if choose when otherwise trim where set foreach 2 if标签 示例: EmployeeMapper.java package com.xuweiwei.mybatis.mapper; import com.xuwei

深入浅出Mybatis(三)查询

前言 要对数据库进行操纵,得有一个需求,所以拟定了一个下面的需求,实现下面的功能: 根据用户id查询一个用户信息 根据用户名称模糊查询用户信息列表 添加用户 更新用户 删除用户 程序编写 建立User.java实体类 pojo类作为mybatis进行sql映射使用,pojo类通常与数据库表对应, 在src中建立一个名为cn.itcast.mybatis.pojo的包,在包内建立一个名为User.java的类: package com.dtt.com.dtt.mybatis.pojo; impor

mybatis三种缓存

1.一级缓存 ? MyBatis 默认开启了一级缓存,一级缓存是在SqlSession 层面进行缓存的.即,同一个SqlSession ,多次调用同一个Mapper和同一个方法的同一个参数,只会进行一次数据库查询,然后把数据缓存到缓冲中,以后直接先从缓存中取出数据,不会直接去查数据库. ? 但是不同的SqlSession对象,因为不用的SqlSession都是相互隔离的,所以相同的Mapper.参数和方法,他还是会再次发送到SQL到数据库去执行,返回结果. 2.二级缓存 ? 为了克服这个问题,需

mybatis源码解读(三)——数据源的配置

在mybatis-configuration.xml 文件中,我们进行了如下的配置: <!-- 可以配置多个运行环境,但是每个 SqlSessionFactory 实例只能选择一个运行环境常用: 一.development:开发模式 二.work:工作模式 --> <environments default="development"> <!--id属性必须和上面的default一样 --> <environment id="deve