【MyBatis】MyBatis查询数据库

2024-03-21 14:40
文章标签 mybatis 查询数据库

本文主要是介绍【MyBatis】MyBatis查询数据库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 1、MyBatis 是什么?
  • 2、为什么要学习 MyBatis?
  • 3、怎么学MyBatis?
  • 4、创建MyBatis项目
    • 4.1 创建数据库和表
    • 4.2 添加MyBatis相关依赖
      • 4.2.1 新项目添加mybatis依赖
      • 4.2.2 老项目添加mybatis依赖
    • 4.3 配置数据库连接字符串和MyBatis(保存的XML的目录)
      • 4.3.1 配置数据库的连接信息
      • 4.3.2 配置MyBatis的XML保存路径
  • 5、使用MyBatis的操作模式操作数据库
    • 5. 1 定义接口(普通的接口)
    • 5. 2 创建XML实现上面的接口
    • 5. 3 添加实体类
    • 5. 4 添加 Service
    • 5. 5 添加 Controller
    • 5.6 添加日志文件
  • 6、增、删、改操作
    • 6.1 增加用户操作
    • MyBatis添加用户并返回自增ID
    • 6.2 修改用户操作
    • 6.3 删除用户操作
  • 7、查询操作
    • 7.1 单表查询
      • 7.1.1 参数占位符 #{} 和 ${}的区别⭐⭐⭐⭐
      • 7.1.2 ${}使用场景(优点)
      • 7.1.3 SQL 注入问题
      • 7.1.4 like 查询
    • 7.2 多表查询
      • 7.2.1 返回类型:resultType
      • 7.2.2 返回字典映射:resultMap
      • 7.2.3 一对一查询
      • 7.2.4 一对多查询
  • 8、动态 SQL
    • 8.1 if 标签
    • 8.2 trim 标签
    • 8.3 where 标签
    • 8.4 set 标签
    • 8.5 foreach 标签

引言:

经过前⾯文章的学习,咱们 Spring 系列的基本操作已经实现的差不多了,接下来,让我们来一起学习更重要的知识——将前端传递的数据存储起来,或者查询数据库⾥⾯的数据。

1、MyBatis 是什么?

      MyBatis 是⼀款优秀的ORM(对象关系映射)持久层框架,它⽀持⾃定义 SQL、存储过程以及⾼级映射。MyBatis 去除了几乎所有的 JDBC代码以及设置参数和获取结果集的⼯作。MyBatis 可以通过简单的 XML 或注解来配置和 映射原始类型、接⼝和 Java POJO(Plain Old Java Objects,普通⽼式 Java 对象)为数据库中的记录。MyBatis官网

简单来说: MyBatis 是更简单完成程序和数据库交互的⼯具,也就是更简单的操作和读取数据库⼯具。

2、为什么要学习 MyBatis?

对于后端开发来说,程序是由以下两个重要的部分组成的:

  1. 后端程序
  2. 数据库

在这里插入图片描述
⽽这两个重要的组成部分要通讯,就要依靠数据库连接⼯具,那数据库连接⼯具有哪些❓ 比如之前我们学习的 JDBC,还有今天我们将要介绍的 MyBatis,那么已经有了 JDBC 了,为什么还要学习 MyBatis呢❓
这是因为 JDBC 的操作太繁琐了,我们先来回顾⼀下 JDBC 的操作流程:

  1. 创建数据库连接池 DataSource
  2. 通过 DataSource 获取数据库连接 Connection
  3. 编写要执行带 ? 占位符的 SQL 语句
  4. 通过 Connection 及 SQL 创建操作命令对象 Statement
  5. 替换占位符:指定要替换的数据库字段类型,占位符索引及要替换的值
  6. 使⽤ Statement 执行SQL 语句
  7. 查询操作:返回结果集 ResultSet,更新操作:返回更新的数量
  8. 处理结果集
  9. 释放资源

从上述操作流程可以看出,对于 JDBC 来说,整个操作⾮常的繁琐,我们不但要拼接每⼀个参数,⽽且还要按照模板代码的⽅式,⼀步步的操作数据库,并且在每次操作完,还要⼿动关闭连接等,⽽所有的这些操作步骤都需要在每个⽅法中重复书写。

于是我们就想,那有没有⼀种方法,可以更简单、更方便的操作数据库呢?

答案是肯定的,这就是我们要学习 MyBatis 的真正原因,它可以帮助我们更方便、更快速的操作数据库。

3、怎么学MyBatis?

MyBatis 学习只分为两部分:

  • 配置 MyBatis 开发环境;
  • 使用 MyBatis 模式和语法操作数据库。

4、创建MyBatis项目

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

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

ORM 把数据库映射为对象:

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

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

也就是说使⽤ MyBatis 可以像操作对象⼀样来操作数据库中的表,可以实现对象和数据库表之间 的转换,接下来我们来看 MyBatis 的使⽤吧。

4.1 创建数据库和表

接下来我们要实现的功能是:使⽤ MyBatis 的⽅式来读取⽤户表中的所有⽤户,我们使⽤个⼈博
客的数据库和数据包,具体 SQL 如下:

-- 创建数据库
drop database if exists mycnblog;
create database mycnblog DEFAULT CHARACTER SET utf8mb4;-- 使用数据数据
use mycnblog;-- 创建表[用户表]
drop table if exists  userinfo;
create table userinfo(id int primary key auto_increment,username varchar(100) not null,password varchar(32) not null,photo varchar(500) default '',createtime datetime default now(),updatetime datetime default now(),`state` int default 1
) default charset 'utf8mb4';-- 创建文章表
drop table if exists  articleinfo;
create table articleinfo(id int primary key auto_increment,title varchar(100) not null,content text not null,createtime datetime default now(),updatetime datetime default now(),uid int not null,rcount int not null default 1,`state` int default 1
)default charset 'utf8mb4';-- 创建视频表
drop table if exists videoinfo;
create table videoinfo(vid int primary key,`title` varchar(250),`url` varchar(1000),createtime datetime default now(),updatetime datetime default now(),uid int
)default charset 'utf8mb4';-- 添加一个用户信息
INSERT INTO `mycnblog`.`userinfo` (`id`, `username`, `password`, `photo`, `createtime`, `updatetime`, `state`) VALUES 
(1, 'admin', 'admin', '', '2021-12-06 17:10:48', '2021-12-06 17:10:48', 1);-- 文章添加测试数据
insert into articleinfo(title,content,uid)values('Java','Java正文',1);-- 添加视频
insert into videoinfo(vid,title,url,uid) values(1,'java title','http://www.baidu.com',1);

4.2 添加MyBatis相关依赖

4.2.1 新项目添加mybatis依赖

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.2.2 老项目添加mybatis依赖

首先请参考➡️ 准备工作—添加 lombok 到项目中
然后再进行下面的配置:
在这里插入图片描述
添加好依赖以后千万不要立即启动项目❗❗千万不要❗❗❗

4.3 配置数据库连接字符串和MyBatis(保存的XML的目录)

4.3.1 配置数据库的连接信息

在这里插入图片描述

在这里插入图片描述

注意事项: 如果使⽤ MySQL 是 5.x 之前的使⽤的是“com.mysql.jdbc.Driver”,如果是⼤于 5.x 使⽤的是“com.mysql.cj.jdbc.Driver”;mysql Driver默认是8.0,如果是8.0以上,则driver-class-name使用的是“com.mysql.cj.jdbc.Driver”,如果是8.0之前的,则使用的是“com.mysql.jdbc.Driver”;如果你创建的是新项目,并且spring boot版本号在2.6.9之前的,那么就只有“com.mysql.cj.jdbc.Driver”这一种写法。

4.3.2 配置MyBatis的XML保存路径

在这里插入图片描述

5、使用MyBatis的操作模式操作数据库

MyBatis模式如图所示:
在这里插入图片描述

5. 1 定义接口(普通的接口)

package com.example.demo.mapper;import com.example.demo.

这篇关于【MyBatis】MyBatis查询数据库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/832923

相关文章

mybatis的整体架构

mybatis的整体架构分为三层: 1.基础支持层 该层包括:数据源模块、事务管理模块、缓存模块、Binding模块、反射模块、类型转换模块、日志模块、资源加载模块、解析器模块 2.核心处理层 该层包括:配置解析、参数映射、SQL解析、SQL执行、结果集映射、插件 3.接口层 该层包括:SqlSession 基础支持层 该层保护mybatis的基础模块,它们为核心处理层提供了良好的支撑。

Spring+MyBatis+jeasyui 功能树列表

java代码@EnablePaging@RequestMapping(value = "/queryFunctionList.html")@ResponseBodypublic Map<String, Object> queryFunctionList() {String parentId = "";List<FunctionDisplay> tables = query(parent

Mybatis中的like查询

<if test="templateName != null and templateName != ''">AND template_name LIKE CONCAT('%',#{templateName,jdbcType=VARCHAR},'%')</if>

JavaWeb【day09】--(Mybatis)

1. Mybatis基础操作 学习完mybatis入门后,我们继续学习mybatis基础操作。 1.1 需求 需求说明: 根据资料中提供的《tlias智能学习辅助系统》页面原型及需求,完成员工管理的需求开发。 通过分析以上的页面原型和需求,我们确定了功能列表: 查询 根据主键ID查询 条件查询 新增 更新 删除 根据主键ID删除 根据主键ID批量删除

MyBatis 切换不同的类型数据库方案

下属案例例当前结合SpringBoot 配置进行讲解。 背景: 实现一个工程里面在部署阶段支持切换不同类型数据库支持。 方案一 数据源配置 关键代码(是什么数据库,该怎么配就怎么配) spring:datasource:name: test# 使用druid数据源type: com.alibaba.druid.pool.DruidDataSource# @需要修改 数据库连接及驱动u

mybatis框架基础以及自定义插件开发

文章目录 框架概览框架预览MyBatis框架的核心组件MyBatis框架的工作原理MyBatis框架的配置MyBatis框架的最佳实践 自定义插件开发1. 添加依赖2. 创建插件类3. 配置插件4. 启动类中注册插件5. 测试插件 参考文献 框架概览 MyBatis是一个优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射,为开发者提供了极大的灵活性和便利性。以下是关于M

mybatis if test 之 0当做参数传入出问题

首先前端传入了参数 if(StringUtils.isNotBlank(status)){requestParam.setProperty("status", Integer.parseInt(status));}List<SuperPojo> applicationList = groupDao.getApplicationListByReviewStatusAndMember(req

滚雪球学MyBatis(02):环境搭建

环境搭建 前言 欢迎回到我们的MyBatis系列教程。在上一期中,我们详细介绍了MyBatis的基本概念、特点以及它与其他ORM框架的对比。通过这些内容,大家应该对MyBatis有了初步的了解。今天,我们将从理论走向实践,开始搭建MyBatis的开发环境。了解并掌握环境搭建是使用MyBatis的第一步,也是至关重要的一步。 环境搭建步骤 在开始之前,我们需要准备一些必要的工具和软件,包括J

利用Mybatis-generator工具自动生成代码

配置JAVA环境变量; 执行生成代码之前,我们须要做的准备工作。  1、新建一个文件夹,作为我们的工作空间,例如:  D:\generator  注意:这里的路径不要带有中文字符,这是规范,即使带有中文字符不会出什么问题。  2、在 generator 这路径下  (1)放置 mybatis-generator-core-1.3.2.jar;  (2)放置 mysql-connector-ja

MyBatis学习——解决字段名与实体类属性名不相同的冲突

转载地址:http://www.cnblogs.com/xdp-gacl/p/4264425.html