IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Mybatis框架 -> 正文阅读

[Java知识库]Mybatis框架

Mybatis框架

关于Mybatis框架

Mybatis框架主要实现了简化数据库编程。

依赖项

通常,使用Mybatis框架时,需要添加依赖:

  • mybatis:Mybatis框架
  • mybatis-spring:Mybatis整合Spring
  • mysql-connector-java:数据库依赖项
  • spring-jdbc:Spring整合JDBC

除此以外,通常还会添加:

  • spring-test:执行测试
  • commons-dbcp / druid等:数据库连接池

在Spring Boot项目中,只需要添加mybatis-spring-boot-startermysql-connector-java即可,测试时,另外添加spring-boot-starter-test

基本配置

在Spring Boot项目中,在application.properties中配置:

  • spring.datasource.url
  • spring.datasource.username
  • spring.datasource.password

然后,需要在配置类上使用@MapperScan指定Mapper接口所在的包,在启动项目时,Mybatis会扫描此包,并找到相关的接口,自动生成这些接口的代理对象。

另外,还需要在application.properties中配置mybatis.mapper-locations属性,用于指定XML文件的位置。

使用Mybatis实现数据库编程

使用Mybatis实现数据库编程主要:

  • 设计Mapper接口中的抽象方法
  • 配置抽象方法映射的SQL语句

关于抽象方法:

  • 返回值类型:增删改使用int,查询只需要保证返回值类型足够装得下查询结果即可
  • 方法名称:自定义,建议参考阿里的规范
  • 参数列表:取决于需要执行的SQL语句中的参数,如果SQL语句中只有1个参数,直接声明为方法的参数即可,如果有多个参数,且这些参数具有相关性,则应该封装,并使用封装的类型作为方法的参数,如果多个参数没有相关性,则一一声明为方法的参数,并且,为每个参数添加@Param注解
    • 在某些集成环境中,多个参数也可以不添加@Param

关于配置SQL语句:

  • 可以使用@Insert等节点配置SQL语句,但是不推荐,推荐使用XML文件来配置SQL语句

  • 必须在<mapper>上配置namespace属性,用于指定对应的接口

  • 使用<insert>等节点配置SQL语句,每个节点必须配置id属性,用于指定对应的抽象方法

  • 在配置<insert>时,如果表的id是自动编号的,则应该配置useGeneratedKeyskeyProperty属性,以获取自动编号的id

  • 在配置<select>时,必须配置resultMapresultType这2个属性中的某1个

  • 可以使用<sql>节点封装SQL语句片段,并使用<include>节点进行引用,通常,使用<sql>封装字段列表

  • 使用<resultMap>节点用于指导Mybatis封装查询结果

  • 使用动态SQL的<foreach>可以实现对数组或List集合类型的参数的遍历

  • 使用动态SQL的<if>可以实现根据参数决定SQL语句中是否包含某个片段,用于处理更新数据的操作时,通常结合<set>节点一起使用

    • 注意:<if>并没有匹配的类似else的节点,如果要实现if...else效果,可以使用2个条件完全相反的<if>,但是,这种做法效率偏低,另外,可以使用<choose>系列节点来实现:

      <choose>
      	<when test="条件">
              满足条件时的SQL语句片段
          </when>
          <otherwise>
              不满足条件时的SQL语句片段
          </otherwise>
      </choose>
      

小结

需要掌握以上所有内容

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-08-19 18:50:24  更:2022-08-19 18:51:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 13:01:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码