• 【JavaEE】 MyBatis -- 查询操作


    1. MyBatis 初始

    MyBatis 是更简单完成程序和数据库交互的⼯具,也就是更简单的操作和读取数据库⼯具。(相较于jdbc繁琐的重复操作)

    MyBatis 在整个框架中的定位,框架交互流程图 :
    在这里插入图片描述
    MyBatis 也是⼀个 ORM 框架,ORM(Object Relational Mapping),即对象关系映射。在⾯向对象编程语⾔中,将关系型数据库中的数据与对象建⽴起映射关系,进⽽⾃动的完成数据与对象的互相转换:

    1. 将输⼊数据(即传⼊对象)+SQL 映射成原⽣ SQL
    2. 将结果集映射为返回对象,即输出对象

    ORM 把数据库映射为对象:

    • 数据库表(table)–> 类(class)
    • 记录(record,⾏数据)–> 对象(object)
    • 字段(field) --> 对象的属性(attribute)

    ⼀般的 ORM 框架,会将数据库模型的每张表都映射为⼀个 Java 类。

    2. MyBatis 使用

    2.1 先使用SQL语句创建出对应的数据库和表

    在这里插入图片描述

    2.2 添加MyBatis框架支持

    如果是对之前的 Spring 项⽬进⾏升级,使用EditStarters插件即可:
    在这里插入图片描述
    在这里插入图片描述
    添加了 MyBatis 之后,还需要添加 MySQL 驱动呢;
    原因:MyBatis类似一个数据库平台,而数据库种类有很多(mysql,SQL server,DB2…),因此我们需要具体使用哪种数据库就需要添加对应数据库驱动支持。

    如果是新项⽬添加MyBatis,在创建项目时选中对应即可:
    在这里插入图片描述

    4.3 连接字符串和MyBatis的xml文件配置

    4.3.1 配置连接字符串

    在这里插入图片描述

    # 配置数据库连接
    spring:
      datasource:
        url: jdbc:mysql://127.0.0.1:3306/mycnblog?characterEncoding=utf8
        username: root
        password: 1963
        driver-class-name: com.mysql.cj.jdbc.Driver
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    注意:如果使⽤ MySQL 是 5.x 之前的使⽤的“com.mysql.jdbc.Driver”
    如果是⼤于 5.x 使⽤的是“com.mysql.cj.jdbc.Driver”

    4.3.2 配置 MyBatis 中的 XML 路径

    MyBatis 的 XML 中保存是查询数据库的具体操作 SQL,配置如下:
    在这里插入图片描述
    MyBatis 的 XML 文件路径如下:
    在这里插入图片描述

    # 配置mybatis xml保存路径
    mybatis:
      mapper-locations: classpath:mybatis/**Mapper.xml
    
    • 1
    • 2
    • 3

    4.4 添加业务代码

    按照后端开发的⼯程思路,也就是下⾯的流程来实现 MyBatis 查询所有⽤户的功能:
    在这里插入图片描述

    4.4.1 添加实体类

    先添加⽤户的实体类:
    在这里插入图片描述

    4.4.2 添加 mapper 接口

    在这里插入图片描述

    4.4.3 添加 UserMapper.xml

    数据持久成的实现,mybatis 的固定 xml 格式:

    
    DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.example.demo.mapper.UserMapper">
      
    mapper>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    UserMapper.xml 查询所有⽤户的具体实现 SQL:
    在这里插入图片描述

    对标签说明:

    • 标签:需要指定 namespace 属性,表示命名空间,值为 mapper 接⼝的全限定名,包括全包名.类名。
      在这里插入图片描述
    • 查询标签:是⽤来执⾏数据库的查询操作的:
      id:是和 Interface(接⼝)中定义的⽅法名称⼀样的,表示对接⼝的具体实现⽅法。
      resultType:是返回的数据类型,也就是开头我们定义的实体类。

    4.4.4 添加 Service

    服务层实现代码如下:
    在这里插入图片描述

    4.4.5 添加 Controller

    控制器层的实现代码如下:
    在这里插入图片描述
    以上代码写完,整个 MyBatis 的查询功能就实现完了,接下来使⽤ postman 或者浏览器发送get请求来测试⼀下:
    在这里插入图片描述
    返回数据成功,使用MyBatis实现查询数据库表所有用户成功 !

    • 按照上面的步骤,就可以实现使用mybatis的查询以及返回数据的操作
    • 增、删、改操作也是类似的,实现不同的SQL语句就行了
    • over ~
  • 相关阅读:
    HTTP 原理
    ElementUI之动态树及书籍的分页查询
    Rust 跑简单的例子
    网络安全(黑客)自学
    支付宝小程序唤起独立签约
    一元多项式
    Docker: 使用容器化数据库
    期权基本概念
    swagger简介
    [每周一更]-(第21期):什么是RPC?
  • 原文地址:https://blog.csdn.net/xqs196301/article/details/126427218