当前位置: 首页 > news >正文

Mybatis基础操作

基础操作

增删改查

  • @Select 是查询类的注解,所有的查询均使用这个
  • @Result 修饰返回的结果集,关联实体类属性和数据库字段一一对应,如果实体类属性和数据库属性名保持一致,就不需要这个属性来修饰。
  • @Insert 插入数据库使用,直接传入实体类会自动解析属性到对应的值
  • @Update 负责修改,也可以直接传入对象
  • @delete 负责删除

删除操作

在这里插入图片描述
完成了相关 Mapper 层开发,使用的时候当作普通的类注入进入就可以了
在测试类中,返回值可以设置成int类型
在这里插入图片描述

注意事项:

如果mapper层接口方法形参只有一个普通类型的参数,#{…}里面的属性名可以随便写,如#{id},#{value},在实际开发中,建议两者名保持一致,增强可读性。

日志输出

可以在application.properties中,打开mybatis的日志,并指定输出到控制台。

#指定mybatis输出日志的位置,输出控制台
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

在这里插入图片描述
只需在application.properties中输入mybatislog,idea会自动提示,选择mybatis.configuration.log-impl,之后在输入S,选择StdOutImpl即可配置完成

预编译sql

在这里插入图片描述

  • 性能更高
  • 更安全(防止sql注入)

流程

在这里插入图片描述

参数占位符

在这里插入图片描述

新增操作

在这里插入图片描述

测试

在这里插入图片描述

运行结果

在这里插入图片描述

注意:

  • 属性名一般采用驼峰命名,不要写成字段名
  • 有多个参数时,可以采用实体类封装

新增(主键返回)

实现:
在这里插入图片描述

更新操作

在这里插入图片描述

查询操作

在这里插入图片描述

在这里插入图片描述

数据封装:

  • 实体类属性名 和数据库表 查询返回的字段名一致,mybatis会自动封装
  • 如果实体类属性名 和数据库表 查询返回的字段名不一致,不能自动封装

解决办法

  • 方法一:给字段名起别名,让别名与实体类属性一致
    在这里插入图片描述
  • 方案二:通过@Results、@Result注解手动映射封装
    在这里插入图片描述
  • 方案三:开启mybatis的驼峰命名自动映射开关---- dept_id ===> deptId
    在这里插入图片描述

在这里插入图片描述

条件查询

在这里插入图片描述

在这里插入图片描述

问题原因所在:

在这里插入图片描述

优化:利用concat函数拼接

在这里插入图片描述

http://www.lryc.cn/news/215423.html

相关文章:

  • Java实验二类编程实验
  • css文本溢出省略号多行单行例子详细
  • android auto
  • opengl基础笔记1
  • Flutter中的各种刷新小部件
  • DataxWeb安装部署及使用--真香警告
  • OpenCV 笔记(4):图像的算术运算、逻辑运算
  • 创建ABAP数据库表和ABAP字典对象-使用已存在的数据元素增加城市字段04
  • Centos7上安装 Node.js
  • 栈及其栈的模拟实现和使用
  • HarmonyOS开发:开源一个刷新加载组件
  • XSSFWorkbook读取模板,批量填充并导出文件
  • Lazada新店运营秘籍自养号测评技术
  • python:逐像素处理遥感数据时间序列数据(求时间序列最大值、最大值所对应的索引、最大值所在的时间)
  • SpringCloudGateway--过滤器(自定义filter)
  • 【docker】安装 showdoc
  • 智慧公厕:科技赋予公共卫生新生命,提升城市管理品质
  • 深度学习_2 数据操作之数据预处理
  • 在美团和阿里6年,很难却也真实...
  • 2、NLP文本预处理技术:词干提取和词形还原
  • Fabric官方示例测试网络搭建
  • ubuntu20.04 conda pack 打包虚拟环境,直接将其用到其他终端
  • 云原生-AWS EC2使用、安全性及国内厂商对比
  • 【Proteus仿真】【Arduino单片机】简易电子琴
  • QT5.15.2 for Android 真机调试
  • Mysql my.cnf配置文件参数详解
  • linux下构建rocketmq-dashboard多架构镜像——筑梦之路
  • git,ssh,sourcetree代码管理
  • Jenkins中解决下载maven包巨慢的问题
  • Redis(11)| 持久化AOF和RDB