mybatis简单练习笔记

 

Mybatis简介

MyBatis 前身apache的一个开源项目iBatis,是一个半ORM(对象关系映射)的Java的持久层框架。可以写原生态sql,可以严格控制sql执行性能,灵活度高,对性能的要求很高,或者需求变化较多的项目,建议使用MyBatis .

优点:

1.简单易学,没有任何第三方依赖

2.因为基于SQL语句编程,相当灵活,不会对应用程序或者数据库的现有设计造成任何影响,提供XML标签,支持编写动态SQL语句,并可重用;业务逻辑和数据访问逻辑分离提高了可维护性,可以和Spring很好的集成,提供映射标签等

缺点:

1.sql编写工作量大,实习复杂业务时,对sql编写能力有一定要求。

2.因为是编写sql,所以比较依赖于数据库,数据库移植性差,可以通过标签实现对数据库的兼容,实际也很少出现经常换数据库。

3.二级缓存机制

4.框架整体还是比较简单,需要进行二次封装( mybatis-plus).

简单原理:

MyBatis应用程序根据XML配置文件创建SqlSessionFactory,SqlSessionFactory在根据配置,配置来源于两个地方,一处是配置文件,一处是Java代码的注解,获取一个SqlSession。SqlSession包含了执行sql所需要的所有方法,可以通过SqlSession实例直接运行映射的sql语句,完成对数据的增删改查和事务提交等,用完之后关SqlSession。

 

官方文档https://mybatis.org/mybatis-3/zh/configuration.html

练习题:https://gitee.com/luoqiyang/mybatis/tree/master

1.简单CRUD,分页查询等

 

2.动态sql(动态sql查询,更新,删除,插入)

 

2.1 include标签引用,可以复用SQL片段引用同一个xml中的sql片段,或者引入公用sql片<include refid="namespace.id"/>同时也可以引用property属性

 

2.2 <where>标签,主要解决条件拼接问题,可以配合其他标签一起使用

2.3 <if>标签 主要用于条件判断,不等于空,大于小于以什么开头等判断,注意判断非string类型时 <if test="xx!= null and 'hello'.toString() == xx.toString()"> ,逻辑判断使用and or ,大于小于需要用转义符。

 

2.4 choose、when、otherwise 标签理解为Java中的switch、case、default。

 

 

2.5 trim 标签主要替代 set 和where标签,格式化标签

1 prefix:前缀

2 prefixOverrides:去掉第一个and或者是or

3 suffix:后缀

4 suffixOverrides:去掉最后一个逗号,也可以是其他的标记

2.6 foreach标签 对集合进行遍历 构建 IN 条件语句

1 collection:对象map,array,list会有不同的区别

2 item:别名

3 open:前缀

4 close:后缀

5 separator:拼接符

 

 

 

 

 

2.7 bind标签 创建一个变量,并将其绑定到当前的上下文

 

2.8 set标签 修改值

 

3 注解方式 增删改查

 

4緩存

一级缓存

在参数和SQL完全一样的情况下,一个SqlSession对象调用一个mapper方法,查询的结果集会缓存到一级缓存中,在查询缓存没有刷新和超时的情况下(执行了update或者delete时,缓存失效),会使用一级缓存,MyBatis在开启一个数据库会话时,会 创建一个新的SqlSession对象,SqlSession调用了close()方法,会释放掉一级缓存

二级缓存

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值