Java-MyBatis学习笔记

一、MyBatis简介

1.1简介

简化数据库操作的一个框架,需要自己写sql语句。

1.2持久层框架对比

1.3快速入门

Mapper接口和MapperXML文件;相当于之前的Dao和Dao层的实现。

mybatis使用流程:

        1.导入依赖

        2.准备实体类

        3.创建一个mapper接口,mapper.xml文件

        4.准备mybatis配置文件,连接数据库信息

        5.使用mybatis api进行数据库查询[sqlsessionfactory,sqlsession]

ibatis方法:后被淘汰

Mybatis的用法:相当于在ibatis上加了层封装。

mybatis底层仍然调用ibatis只不过有固定的模式。

二、MyBatis基本使用

2.1向SQL语句传参

mybatis日志输出配置:logimpl,在mybatis-comfig.xml中

sql语句如何接受输入的参数:#{key},${key}

2.2数据输入

场景1:传入单个简单类型,key随便写什么都行,一般写参数名

        传入一个实体对象,

传入多个值:两个方法,@param指定名字,arg0位置参数

map类型传入:

mapper接口中不允许重载!!!

2.3数据输出

输出概述

单个简单类型,resulttype属性,指定输入类型

mybatis提供了常用的72种类的别名,可以在官网看。

自己定义的类,如何定义别名?单独定义和批量定义

返回实体类对象:

上面也可以写别名employee,前提是定义了。

其中select emp_id empId这里每次都要为列名取别名,太麻烦,如何设置自动映射?mybattis.xml

返回map类型,resulttype直接设置就行

返回list类型:返回值是集合,resulttype不需要指定集合,只需要指定泛型即可。

返回主键值【主键回显】

自增长主键:

修改后事务提交才会修改数据库。

非自增长主键:

实体类属性和数据库字段对应关系

2.4CRUD练习

测试的时候,每个测试方法都要写创建sqlsession,可以把这些重复的提取到一个方法中,用@BeforeEach注解,即可在每个测试方法前调用。同样也有@AfterEach

2.5mapperXML标签总结

三、MyBatis多表映射

3.1多表映射概念

嵌套的,一个类的属性是另一个类,在resultmap里写映射就行。

  

对一,属性中包含对方对象

对多,属性中包含对方对象集合

3.2对一映射

3.3对多映射

<association property 对一的对象属性赋值

<collection property 对多的集合属性赋值

3.4多表映射总结

一个小优化:

让resultmap自动映射result标签,只用写id,association,collection就行。

n个表的映射可逐步拆解为2个表的映射。

四、MyBatis动态语句

4.1动态语句需求和简介

4.2if和where标签

4.3set标签

4.4trim标签

4.5choose/when/otherwise标签

这个只能有1个满足,if标签可以有多个满足

4.6foreach标签

遍历操作

4.7sql片段

if和where完成多条件动态判断,where可以自动加where关键字,以及去掉and,or

set 更新的时候配合if,去掉多的分割都好

trim可以替换where,set,可以自动去掉或加上某些前缀后缀

choose 有多个条件,但只想要一个条件满足

foreach 遍历,做批量操作

sql片段,相当于提取

五、MyBatis高级扩展

5.1Mapper批量映射优化

com.qwe.pojo如果创建文件这么写是一层文件夹,如何多层?

在输入文件夹名的时候,分隔符用/,com/qwe/pojo

5.2插件和分页插件PageHelper

5.3逆向工程和MybatisX插件        

六、MyBatis总结

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值