Mybatis快速入门(二)

11 篇文章 1 订阅

第四章 动态SQL

什么是动态SQL:同一个dao的方法,根据不同的条件可以表示不同的sql与语句,主要是where部分有变化,使用mybatis提供的标签实现动态sql的能力,主要讲if,where,foreach,sql,

使用动态sql的时候,Dao方法的形参使用Java对象。

什么时候使用动态sql?
在这里插入图片描述

内容列表

  • 动态sql-if
  • 动态sql-where
  • 动态sql-foreach
  • 动态sql-片段

if 标签

语法:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

where 标签

使用if标签时,容易引起sql语句语法错误,使用where标签解决if产生的语法问题。
使用where,里面是一个或多个if标签,当有一个if标签判断为true,where标签会转为where关键字附加到sql语句的后面,如果if没有一个条件为true,忽略where和里面的if。
where标签删除和他最近的or或者and。

语法:
在这里插入图片描述
在这里插入图片描述

foreach

使用foreach可以循环数组,list集合,一般使用在in语句中。
语法:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

动态SQL之代码片段

标签用于定义SQL片段,以便其他SQL标签复用,而其他标签使用该sql片段,需要使用子标签。该标签可以定义SQL语句中的任何部分,所以子标签可以放在动态SQL的任何位置。

接口方法:
在这里插入图片描述
在这里插入图片描述

第五章 Mybatis配置文件

mybatis配置文件两大类:1.mybatis主配置文件;2.mybatis的mapper文件
1.mybatis主配置文件:提供mybatis全局设置的,包含的内容日志,数据源,mapper文件位置
2.mapper文件:写sql语句的,一个表一个mapper文件

settings部分

settings是mybatis的全局设置,影响整个mybatis的运行,这个设置一般使用默认值就行。

<settings>
  <setting name="cacheEnabled" value="true"/>
  <setting name="lazyLoadingEnabled" value="true"/>
  <setting name="multipleResultSetsEnabled" value="true"/>
  <setting name="useColumnLabel" value="true"/>
  <setting name="useGeneratedKeys" value="false"/>
  <setting name="autoMappingBehavior" value="PARTIAL"/>
  <setting name="autoMappingUnknownColumnBehavior" value="WARNING"/>
  <setting name="defaultExecutorType" value="SIMPLE"/>
  <setting name="defaultStatementTimeout" value="25"/>
  <setting name="defaultFetchSize" value="100"/>
  <setting name="safeRowBoundsEnabled" value="false"/>
  <setting name="mapUnderscoreToCamelCase" value="false"/>
  <setting name="localCacheScope" value="SESSION"/>
  <setting name="jdbcTypeForNull" value="OTHER"/>
  <setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>
</settings>

typeAliase别名

在这里插入图片描述

配置环境

environments:环境标签,可以配置多个
属性:default,必须是某个environment的id属性值
environment:表示一个数据库的连接信息
属性:id 自定义的环境标识。唯一值
transactionManager:事务管理器
属性:type表示事务管理器的类型
属性值:JDBC:使用Connection对象,由mybatis自己完成事物的处理
MANAGED:管理,表示把事物的处理交给容器实现(其他软件完成事物的提交回滚)
dataSourc:数据源,创建Connection对象,连接数据库
属性:type数据源的类型
属性值:POOLED,mybatis会在内存中创建PooledDataSource类,管理多个Connection连接对象,使用的连接池
UNPOOLED,不适用连接池,mybatis创建一个UNPOOLEDDataSource这个类,每次执行sql语句先创建connection对象再执行sql语句,最后关闭Connection
JNDI:Java的命名和目录服务

<environments default="development">
  <environment id="development">
    <transactionManager type="JDBC">
      <property name="..." value="..."/>
    </transactionManager>
    <dataSource type="POOLED">
      <property name="driver" value="${driver}"/>
      <property name="url" value="${url}"/>
      <property name="username" value="${username}"/>
      <property name="password" value="${password}"/>
    </dataSource>
  </environment>
</environments>

使用数据库属性配置文件

需要把数据库的配置信息放到一个单独文件中,独立管理,这个文件扩展名是properties,在这个文件中使用自定义的key=value的格式表示数据。
在这里插入图片描述

mapper标签

使用mapper指定其他mapper文件的位置,mapper标签使用的格式有两种常用的方式
在这里插入图片描述

扩展

Pagehelper

mybatis通用分页插件
https://github.com/pagehelper/Mybatis-Pagehelper

maven坐标

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>最新版本</version>
</dependency>

加入plugin配置

在<>之前加入
<plugin>
<plugin interceptor="com.github.pagehelper.PageInterceptor"/>
</plugin>

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值