码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【JavaEE】 MyBatis -- 查询操作


    目录

    • 1. MyBatis 初始
    • 2. MyBatis 使用
      • 2.1 先使用SQL语句创建出对应的数据库和表
      • 2.2 添加MyBatis框架支持
      • 4.3 连接字符串和MyBatis的xml文件配置
        • 4.3.1 配置连接字符串
        • 4.3.2 配置 MyBatis 中的 XML 路径
      • 4.4 添加业务代码
        • 4.4.1 添加实体类
        • 4.4.2 添加 mapper 接口
        • 4.4.3 添加 UserMapper.xml
        • 4.4.4 添加 Service
        • 4.4.5 添加 Controller

    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 ~
  • 相关阅读:
    redis与 缓存击穿、缓存穿透、缓存雪崩
    网页制作基础大二dw作业HTML+CSS+JavaScript云南我的家乡旅游景点
    【云原生 | Kubernetes 系列】--Gitops持续交付 实现从代码克隆到应用部署
    Vue事件修饰符整理
    线性dp,毫哥和巨佬的故事
    Mysql JDBC反序列化漏洞
    牛客java选择题每日打卡Day16
    网络协议入门 笔记一
    “判断性别”Demo需求分析和初步设计(中)
    猿创征文|[C++ 从入门到精通] 6.static_cast、dynamic_cast等显示类型转换
  • 原文地址:https://blog.csdn.net/xqs196301/article/details/126427218
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号