mybatis学习内容整理

mybatis学习内容整理

配置mybatis

  • 编写mybatis-config.xml,建立数据库连接
  • 编写类方法,静态创立sqlsessionfactory
  • 编写dao接口mapper
  • 编写mapper.xml实现对应的mapper接口中的sql方法
  • mybatis-config.xml中关联到mapper.xml

编写接口(Mapper)

编写xml中sql语句,实现接口中方法(要使用namespace绑定Mapper接口,在xml中实现对应的 Mapper中的数据库方法。id和接口中方法名要一样,确定好参数类型和返回类型,返回类型用pojo接口类表示)
测试,查看结果(事务增删改需要·commit)

在这里插入图片描述
可以通过map传递参数,好处是不必要把整个对象的所有属性都添加到sql语句中,选择性传入map中的参数即可
Map传递参数时,直接在sql中取出key即可:

ParameterType=“map”;

传入的参数只有一个基本类型(比如int)时,可以不声明parametertype(可以省略不写),直接在sql语句中取就行。

模糊查询:

Java代码执行时,传递通配符% %;

Select * from mybatis.user where name like #{value};

测试:

List<user> userlist =mapper.getuserlike(“%李%”)

在这里插入图片描述
或者在sql拼接中使用通配符

Select * from mybatis.user where name like “%”#{value}”%”;

测试:

List<user> userlist =mapper.getuserlike(“李”)(防止sql注入)

配置之属性优化

Mybatis默认的事务管理器是jdbc,连接池:pooled

属性(properties)
可以通过属性来实现引用配置文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

设置(setting)

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

类型别名(typeAliases)

为java中的·类设置一个短名字,比如com.mybatis.user替换为user

在这里插入图片描述
在这里插入图片描述
或者通过指定好包名,在mapper.xml中使用类名(默认实体类的首字母要小写),也可以通过在实体类上注解别名,使用别名。在这里插入图片描述

其他配置

  • Objectfactory
  • TypeHandlers
  • Plugins插件:
    Mybatisplus
    Mybatis-generator-core(根据数据表生成sql)
    通用 Mapper

映射器(Mappers)

Mybatis-config.xml中通过绑定dao层的mapper.xml(实现sql)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

属性名和字段名不一致:

数据库属性:id name pwd
实体bean属性:id name password
对应的属性不完全一致,查找到结果时,密码属性为null;

解决方法:
在这里插入图片描述

或者使用resultmap结果集映射:
在这里插入图片描述

日志

日志工厂
如果一个数据库操作出现了异常,需要借助日志排错。
在这里插入图片描述
在mybatis-config.xml中配置日志:
在这里插入图片描述
Log4j:
Meaven导包;
添加log4j.properties配置文件:
在这里插入图片描述

Mybatis-config.xml中配置log4j,同上;
在测试中运行,可以看到日志记录
日志简单使用:
在这里插入图片描述

Limit分页:

Select * from user limit 0,2;
(每页两条数据,从第0个开始查)

Select * from user limit 4;
(从第0个开始,到第4个 结束)

分页实现:
在这里插入图片描述
通过map获取参数值,测试时通过map.put存入参数,直接通过map传入:
在这里插入图片描述
RowBounds分页
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Mybatis分页插件—pagehelper

使用注解开发

在这里插入图片描述

注解增删改查
在这里插入图片描述

在这里插入图片描述

多对一处理:

关联:Association 多对一
在这里插入图片描述

根据学生id查出对应的信息(包括学生的老师)

方式一:按照查询嵌套处理:
在这里插入图片描述
测试结果:
在这里插入图片描述
方式二:按照结果嵌套处理:
在这里插入图片描述

一对多的处理

集合 collection 一对多
在这里插入图片描述

在这里插入图片描述
或者:
在这里插入图片描述
在这里插入图片描述
动态sql搭建
https://mybatis.org/mybatis-3/zh/dynamic-sql.html

缓存

一级缓存:Sqlsession
缓存失效情况:

  • 查询不同的东西
  • 增删改操作都会刷新缓存

二级缓存:
Mybatis.config.xml中开启全局缓存:
在这里插入图片描述

使用二级缓存,在mapper.xml中添加标签
在这里插入图片描述

把sqlsession缓存关闭后,二级缓存才会生效)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值