【MyBatis学习】MyBatis操纵数据库进行查询操作 ?MyBatis与JDBC想比怎么样,赶快与我一起探索吧 ! ! !

这篇具有很好参考价值的文章主要介绍了【MyBatis学习】MyBatis操纵数据库进行查询操作 ?MyBatis与JDBC想比怎么样,赶快与我一起探索吧 ! ! !。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:
大家好,我是良辰丫,从今天开始我们就要进入MyBatis的学习了,请君与我一起操纵数据库,MyBatis到底是什么呢?我们慢慢往下瞧! ! !💌💌💌

🧑个人主页:良辰针不戳
📖所属专栏:javaEE进阶篇之框架学习
🍎励志语句:生活也许会让我们遍体鳞伤,但最终这些伤口会成为我们一辈子的财富。
💦期待大家三连,关注,点赞,收藏。
💌作者能力有限,可能也会出错,欢迎大家指正。
💞愿与君为伴,共探Java汪洋大海。

【MyBatis学习】MyBatis操纵数据库进行查询操作 ?MyBatis与JDBC想比怎么样,赶快与我一起探索吧 ! ! !

1. 初识MyBatis

1.1 走进MyBatis

在学习MyBatis的用法之前我们首先要对MyBatis的基本概念有一定的了解,要不然学习起来会变得一团糟.

  • MyBatis 是⼀款优秀的持久层框架,它⽀持⾃定义 SQL、存储过程以及⾼级映射。MyBatis 去除了⼏乎所有的 JDBC 代码以及设置参数和获取结果集的⼯作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接⼝和 Java POJO(Plain Old Java Objects,普通⽼式 Java 对象)为数据库中的记录。
  • 简单来说 MyBatis 是更简单完成程序和数据库交互的⼯具,也就是更简单的操作和读取数据库的工具,其实MyBatis本质上还是调用JDBC,只不过是框架帮我们做了一定的优化.

MyBatis的好处?
我们已经有了JDBC,为什么还要学习MyBatis呢?

  • JDBC比较繁琐,步骤很多,没进行一次不同的数据库操作,都需要把繁琐的步骤写一次.
  • MyBatis本质上还是调用 JDBC,但是它简化了很多工作,MyBatis在创建的时候大家会感到很繁琐,但是创建好了,大家用的时候会发现是真的香.

1.2 认识SSM

  • 在之前没有Spring Boot的时候,所谓的SSM是Spring + Spring MVC + MyBatis.
    此时我们是使用maven进行项目创建的.
  • 后来Spring Boot诞生,我们发现这个东西是真的香,渐渐地,程序员就几乎不再使用Spring 了,Spring Boot仿佛代替了Spring ,此时所谓的SSM是Spring Boot+ Spring MVC + MyBatis,其实Spring Boot内置了所有的东西.
  • 但是在面试的时候,面试官问我们SSM是什么,我们答老版和新版的都可以,这些只是历史背景,大家简单的了解即可.

2. MyBatis的查询具体步骤

接下来我们就要开始实现我们的第一个MyBatis的查询功能,刚开始学起来可能有点困难,因为创建的时候比较繁琐,不要慌哈,多操作几次就可以了,熟能生巧.

2.1 创建一个表

我们首先需要建库建表,这是实现我们查询功能的前提.


-- 创建数据库
drop database if exists student;
create database student DEFAULT CHARACTER SET utf8mb4;

-- 使用数据库
use student;

-- 创建学生表
drop table if exists stu;
create table stu(
    id int primary key auto_increment,
    name varchar(20) not null,
    age int
)default charset 'utf8mb4';

我们先在里面添加一条数据

insert into stu values(null,'张三',18);

【MyBatis学习】MyBatis操纵数据库进行查询操作 ?MyBatis与JDBC想比怎么样,赶快与我一起探索吧 ! ! !

2.2 创建 SSM项目

创建SSM项目就是在创建Spring Boot的基础上,Spring Boot相当于一个容器,它内置了很多框架,创建Spring Boot的过程我就不做详细描述,我们在Spring Boot的文章中已经做了详细的描述,大家可以去看一下.

【MyBatis学习】MyBatis操纵数据库进行查询操作 ?MyBatis与JDBC想比怎么样,赶快与我一起探索吧 ! ! !
【MyBatis学习】MyBatis操纵数据库进行查询操作 ?MyBatis与JDBC想比怎么样,赶快与我一起探索吧 ! ! !

我们需要去选择我们的MyBatis框架,注意,我们还需要选择我们的数据库,我们使用的是mysql,因此选择mysql.

【MyBatis学习】MyBatis操纵数据库进行查询操作 ?MyBatis与JDBC想比怎么样,赶快与我一起探索吧 ! ! !

【MyBatis学习】MyBatis操纵数据库进行查询操作 ?MyBatis与JDBC想比怎么样,赶快与我一起探索吧 ! ! !

【MyBatis学习】MyBatis操纵数据库进行查询操作 ?MyBatis与JDBC想比怎么样,赶快与我一起探索吧 ! ! !
【MyBatis学习】MyBatis操纵数据库进行查询操作 ?MyBatis与JDBC想比怎么样,赶快与我一起探索吧 ! ! !

此时我们虽然创建好了SSM项目,但是我们直接运行回报错,异常退出,因为我们的SSM项目没有配置数据库相关的信息,因此我们找不到数据库,所以会报错.

【MyBatis学习】MyBatis操纵数据库进行查询操作 ?MyBatis与JDBC想比怎么样,赶快与我一起探索吧 ! ! !

2.3 数据库进行配置

我们在Spring Boot里面学习了两种格式的配置,因此两种配置都可以,使用其中一种即可,在本篇文章中,我们主要使用properties配置.

yml配置文件

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mycnblog?characterEncoding=utf8&useSSL=false
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver

properties配置文件

spring.datasource.url=jdbc:mysql://localhost:3306/mycnblog?characterEncoding=utf8&useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

2.4 配置 MyBatis 中的 XML 路径

直接加到配置文件中,在后续的内容中,我们以properties配置文件进行讲解.

spring.datasource.url=jdbc:mysql://localhost:3306/student?characterEncoding=utf8&useSSL=false
spring.datasource.username=root
# 注意!写你自己的密码
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# mybatis xml 配置 MyBatis 中的 XML 路径
mybatis.mapper-locations=classpath:mybatis/*Mapper.xml

2.5 实现业务代码

接下来我们创几个包,为什么要创包呢?我们从现在开始要严格按照项目的要求进行操作,写代码,各个层次里面放不同类型的代码.

【MyBatis学习】MyBatis操纵数据库进行查询操作 ?MyBatis与JDBC想比怎么样,赶快与我一起探索吧 ! ! !

2.5.1 实现实体类

entity里面放的是实体类,我们先放一个实体类

package com.example.demo.entity;

import lombok.Data;

@Data
public class Stu {
    private int id;
    private String name;
    private int age;
}

2.5.2 构造mapper层次的代码

我们先创建一个接口.

package com.example.demo.mapper;

import com.example.demo.entity.Stu;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

@Mapper
public interface StuMapper {
    Stu getStuId(@Param("id") Integer id);
}

2.5.3 创建xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace是命名空间,表示实现哪个接口-->
<mapper namespace="com.example.demo.mapper.StuMapper">

    <select id="getStuId" resultType="com.example.demo.entity.Stu">
        select * from stu where id=${id}
    </select>

    </mapper>

2.5.4 实现服务层

  • 有人可能会有疑惑,这里能直接注入接口嘛?框架的功能是非常强大的,它会帮我们做这些.
  • 如果有多个相同名字的接口呢?我们可以采用命名的方式进行区分.
  • ①@Resource
  • ②@Autowired+@Qualifier
package com.example.demo.service;

import com.example.demo.entity.Stu;
import com.example.demo.mapper.StuMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class StuService {
    @Autowired
    private StuMapper stuMapper;

    public Stu getUserById(Integer id) {
        return stuMapper.getStuId(id);
    }

}

2.5.5 实现控制器

package com.example.demo.controller;

import com.example.demo.entity.Stu;
import com.example.demo.service.StuService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/user")
public class Controller {

    @Autowired
    private StuService stuService;

    @RequestMapping("/id")
    public Stu getUserById(Integer id) {
        if (id == null) return null;
        return stuService.getUserById(id);
    }
}

下面是我们完整的目录结构.

【MyBatis学习】MyBatis操纵数据库进行查询操作 ?MyBatis与JDBC想比怎么样,赶快与我一起探索吧 ! ! !

2.5.6 验证程序

我们通过浏览器进行访问id为1的数据,访问成功,说明我们的程序成功了.

【MyBatis学习】MyBatis操纵数据库进行查询操作 ?MyBatis与JDBC想比怎么样,赶快与我一起探索吧 ! ! !

3. 简单描述上述交互过程

  • 前端访问后端,也就是浏览器发送访问请求.
  • 请求传给控制器,进行参数验证.
  • 验证成功后控制器调用服务器.
  • 服务器调用mapper层的接口和xml文件.
  • mapper向数据库索要内容,返回给服务器.
  • 服务器返回给控制器.
  • 控制器把内容返回给浏览器.

【MyBatis学习】MyBatis操纵数据库进行查询操作 ?MyBatis与JDBC想比怎么样,赶快与我一起探索吧 ! ! !文章来源地址https://www.toymoban.com/news/detail-483478.html

到了这里,关于【MyBatis学习】MyBatis操纵数据库进行查询操作 ?MyBatis与JDBC想比怎么样,赶快与我一起探索吧 ! ! !的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • MyBatis查询数据库(4)

    MyBatis查询数据库(4)

    ❤️❤️❤️SSM专栏更新中,各位大佬觉得写得不错,支持一下,感谢了!❤️❤️❤️ Spring + Spring MVC + MyBatis_冷兮雪的博客-CSDN博客 终于到了MyBatis最后一篇,这篇讲的是 动态SQL的使用。 动态 SQL 是Mybatis的强大特性之⼀,能够完成不同条件下不同的 SQL 拼接。 可以参考官

    2024年02月14日
    浏览(27)
  • 【Java】Mybatis查询数据库

    【Java】Mybatis查询数据库

    经过前面的学习Spring系列的操作已经差不多了,接下来我们继续学习更加重要的知识,将前端传递的参数存储起来,或者查询数据库里面的数据 MyBatis是款优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。MyBatis几乎祛除了所有的JDBC代码以及设置参数和获取结果集

    2024年01月18日
    浏览(23)
  • MyBatis 查询数据库、持久层框架简介

    MyBatis 查询数据库、持久层框架简介

    MyBatis是一款优秀的持久层框架,支持自定义SQL、存储过程以及高级映射。它通过简单的XML或注解来配置和映射原始类型、接口和Java POJO为数据库中的记录。

    2024年02月12日
    浏览(10)
  • MyBatis查询数据库之一(概念+创建项目+基础交互)

    MyBatis查询数据库之一(概念+创建项目+基础交互)

    目录 1.MyBatis是什么? 2.为什么学习MyBatis? 3. 怎么学 MyBatis 4.第⼀个MyBatis查询 4.1 添加MyBatis框架支持 4.1.1老项目添加MyBatis 4.1.2 新项目添加MyBatis 4.2 配置连接字符串和MyBatis 4.2.1 配置连接字符串 4.2.2 配置 MyBatis 中的 XML 路径 5. 使用 MyBatis 的操作模式操作数据库 5.1 添加实体类

    2024年02月13日
    浏览(24)
  • Java EE 突击 13 - MyBatis 查询数据库(2)

    Java EE 突击 13 - MyBatis 查询数据库(2)

    这个专栏给大家介绍一下 Java 家族的核心产品 - SSM 框架 JavaEE 进阶专栏 Java 语言能走到现在 , 仍然屹立不衰的原因 , 有一部分就是因为 SSM 框架的存在 接下来 , 博主会带大家了解一下 Spring、Spring Boot、Spring MVC、MyBatis 相关知识点 并且带领大家进行环境的配置 , 让大家真正用好

    2024年02月11日
    浏览(28)
  • MyBatis 查询数据库之二(增、删、改、查操作)

    MyBatis 查询数据库之二(增、删、改、查操作)

    目录 1. 配置打印 MyBatis 执行的SQL 2. 查询操作 2.1 通过用户 ID 查询用户信息、查询所有用户信息 (1) Mapper 接口 (2)UserMapper.xml 查询所有用户的具体实现 SQL (3)进行单元测试 3. 增加操作 3.1 在 mapper(interface)里面添加增加方法的声明 3.2 在 XMl 中添加 标签和增加的 sql 代码 3.3 生成

    2024年02月14日
    浏览(13)
  • mybatis plus 查询数据库字段名自动添加下划线问题解决

    实体类和数据库中的字段名是一致的,但报错Unknown column \\\'dept_id\\\' in \\\'field list\\\',这是因为plus中的驼峰命名法,会自动添加下划线。 关闭驼峰式命名转换为下划线 在配置文件中加一个: 重新运行,就可以了! 报错信息如下: java.sql.SQLSyntaxErrorException: Unknown column \\\'dept_id\\\' in \\\'fi

    2024年02月07日
    浏览(41)
  • MyBatis-Plus 查询PostgreSQL数据库jsonb类型保持原格式

    MyBatis-Plus 查询PostgreSQL数据库jsonb类型保持原格式

    在这篇文章,我们保存了数据库的jsonb类型:MyBatis-Plus 实现PostgreSQL数据库jsonb类型的保存与查询 这篇文章介绍了模糊查询json/jsonb类型:PostgreSQL 查询json/jsonb是否存在某个片段 在模糊查询json/jsonb之前,我们得拿到正确的json/jsonb片段,比如我们模糊查询好几个连着的键值对,

    2024年02月15日
    浏览(41)
  • 【Java】Mybatis查询数据库返回JSON格式的字段映射到实体类属性

    今天遇到了一个bug,大概就是数据库(Mysql)中有一个 type 类型字段,数据类型为json,大概是这样的:[“苹果”,“香蕉”,“葡萄”]的数据格式,这个bug的问题所在呢就是查询后这个json格式的数据无法映射到我们实体类的属性上,解决方案如下: 实体类的配置: @TableField

    2024年02月15日
    浏览(10)
  • 全网多种方法解决数据库有数据,但mybatis查询出来的值为Null、为空或不存在的问题

    全网多种方法解决数据库有数据,但mybatis查询出来的值为Null、为空或不存在的问题

    今天在查询组件详情时,却报出如下错误: 接下里,我便详细分析出现该错误的原因。 首先 debug (断点),如下图所示: debug 结果是 appCustomComponent: null ,于是,找到 mybatis-plus 的打印的 mysql 语句,如下所示:

    2024年02月15日
    浏览(12)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包