当前位置: 首页 > news >正文

MyBatis查询数据库

目录

一、什么是MyBatis

二、搭建MyBatis开发环境

🍅添加MyBatis依赖

🍅在数据库添加数据  

🍅设置MyBatis配置

         🎈数据库的相关连接信息🎈xml的保存和设置路径

三、使用MyBatis模式和语法操作数据库

        🍅接口:方法声明(给service层调用)

        🍅XML:实现接口

         🍅生成测试类

 四、相关插件下载


一、什么是MyBatis

MyBatis是一款持久层框架,支持自定义SQL、存储过程以及高级映射。可以嗲提JDBC代码以及设置参数和获取结果集的工作。MyBatis可以通过简单的XML或者注解来配置和映射原始类型、接口和Java POJO为数据库中的记录。

它是更见但完成程序和数据库交互的工具,使得能够简单操作和读取数据库工具。

二、搭建MyBatis开发环境

🍅添加MyBatis依赖

创建Spring boot 时添加MyBatis的相关依赖

🍅在数据库添加数据  

drop database if exists mycnblog;create database myblog DEFAULT CHARACTER SET utf8mb4;-- 创建表[⽤户表]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';-- 在表中添加数据
INSERT INTO `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)
;

🍅设置MyBatis配置

         🎈数据库的相关连接信息🎈xml的保存和设置路径

# 设置数据库的相关连接信息
spring.datasource.url=jdbc:mysql://127.0.0.1:3306?myblog?characterEncoding=utf8
spring.datasource.username=root
# 自己的mysql密码,不要写我的
spring.datasource.password=111111
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver# MyBatis配置信息
# myBatis的实现类
# 设置MyBatis XML存放路径和命名格式,
# 路径就是冒号后面的斜杠前面的,我这里时和.properties同级的mybatis包
mybatis.mapper-locations=classpath:mybatis/*Mapper.xml# 以上是必须要设置的,
# 以下是可选配置
# 配置MyBatis执行时打印SQL
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
# 设置日志级别
logging.level.com.example.demo=debug

        

        

三、使用MyBatis模式和语法操作数据库

 

首先先在数据库添加数据

常规写法包含了两个文件:

        🍅接口:方法声明(给service层调用)

定义实体类

@Data
public class UserInfo {private int id;private String username;private String password;private String photo;private LocalDateTime updatatime;private LocalDateTime createtime;private int state;}

在接口中进行方法声明 

@Mapper  //数据持久层的标志
public interface UserMapper {
//UserInfo是一个自定义的实体类List<UserInfo> getAll();
}

        🍅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">
<mapper namespace="com.example.demo.dao.UserMapper">
<!--    id是UserMapper的方法名-->
-- 查询操作,其他操作同理<select id="getAll" resultType="com.example.demo.model.UserInfo">
--         不写分号select * from userinfo</select>
</mapper>

         🍅生成测试类

 

 

@SpringBootTest     //一定要加该注解,目的是为了告诉当前的测试程序是运行在Springboot容器中的
class UserMapperTest {@Autowiredprivate UserMapper userMapper;@Testvoid getAll() {List<UserInfo> list = userMapper.getAll();System.out.println(list);}
}

 查询结果:

 四、相关插件下载

做完上述步骤以后,可以发现,UserMapper.xml实现了UserMapper接口,但是如果在接口和xml文件不叫多的情况下要对文件进行修改,这样找起来很麻烦,我们就可以下载一个mybatisx的插件。

 

 点击图标就可以直接跳转到对应的xml文件或者接口文件中。

相关文章:

MyBatis查询数据库

目录 一、什么是MyBatis 二、搭建MyBatis开发环境 &#x1f345;添加MyBatis依赖 &#x1f345;在数据库添加数据 &#x1f345;设置MyBatis配置 &#x1f388;数据库的相关连接信息&#x1f388;xml的保存和设置路径 三、使用MyBatis模式和语法操作数据库 &#x1f34…...

RVM问题记录 - Error running ‘__rvm_make -j10‘

文章目录 前言开发环境问题描述问题分析解决方案最后 前言 公司新到一台电脑需要配置开发环境&#xff0c;在用RVM安装Ruby时遇到了一个奇怪的问题。 开发环境 RVM: 1.29.12OpenSSL: 3.1.1 问题描述 执行命令安装Ruby 3.0版本&#xff1a; rvm install ruby-3.0.0在编译阶…...

VIS for AI :ConvNetJS

1.简单介绍&#xff1a; ConvNetJS是由斯坦福大学计算机科学系的Andrej Karpathy开发的一个深度学习框架&#xff0c;用于在浏览器中运行卷积神经网络&#xff08;ConvNet&#xff09;。ConvNetJS可以帮助开发人员在客户端&#xff08;浏览器&#xff09;上进行深度学习任务&a…...

【Python入门系列】第二十篇:Python区块链和加密货币

文章目录 前言一、区块链基础知识1.1 什么是区块链1.2 区块链的工作原理 1.3 区块链的优势和应用场景二、Python实现区块链2.1 创建区块类2.2 创建区块链类2.3 添加区块和验证区块链 三、加密货币基础知识3.1 什么是加密货币3.2 加密货币的工作原理3.3 加密货币的挖矿和交易 四…...

MySQL 服务器的调优策略

点击上方↑“追梦 Java”关注&#xff0c;一起追梦&#xff01; 在工作中&#xff0c;我们发现慢查询一般有2个途径&#xff0c;一个是被动的&#xff0c;一个是主动的。被动的是当业务人员反馈某个查询界面响应的时间特别长&#xff0c;你才去处理。主动的是通过通过分析慢查询…...

Educational Codeforces Round 152 (Rated for Div. 2)

B这个题目在20分钟的时候发现了取模的规律&#xff0c;但是在写法上我竟然犹豫了&#xff0c;这影响了我后面题目的心态 过于可惜了 但是没关系&#xff0c;现在不会&#xff0c;之后就会写了 这里强调一下&#xff0c;sort不会改变原先的顺序&#xff0c;就是说如果两个相等的…...

CSPM难度大吗?对比pmp怎么样?

CSPM证书是刚出来的&#xff0c;难度不会很大&#xff0c;大家都知道 PMP 证书是从国外引进的&#xff0c;近几年很热门&#xff0c;持证人数已经高达 90 余万了&#xff0c;但是目前我们和老美关系大家有目共睹&#xff0c;一直推国际标准和美国标准感觉有点奇怪。 现在新出台…...

Android.mk中的LOCAL_OVERRIDES_PACKAGES用法

Android.mk中的LOCAL_OVERRIDES_PACKAGES用法_mk local_over_觅风者的博客-CSDN博客 Android.mk中的LOCAL_OVERRIDES_PACKAGES的用法说明可以参考以下文章&#xff1a; Android.mk覆盖替换LOCAL_OVERRIDES_PACKAGES 此变量可以使其他的模块不加入编译 项目中遇到的问题&…...

Matlab遍历文件及直方图统计

参考链接&#xff1a; 使用MATLAB遍历文件 strtrim用法 strsplit用法 cell单元数据使用{} close all; dir_path C:/Users/; fileFolder ls(dir_path); fileNum length(fileFolder(:,1)) - 2; for i 3:(3fileNum-1)file_path strcat(dir_path, strtrim(fileFolder(i,:)))…...

为什么要格式化硬盘?硬盘格式化了数据怎么恢复

在计算机维护和数据管理中&#xff0c;格式化硬盘是一个常见的操作。本文将探讨为什么需要对硬盘进行格式化以及当数据丢失时如何恢复。 ▌格式化硬盘是什么意思&#xff1a; 硬盘格式化是对磁盘或其分区进行初始化的一种操作&#xff0c;它会清除磁盘或分区中的所有文件。因此…...

PHP注册、登陆、6套主页-带Thinkphp目录解析-【白嫖项目】

强撸项目系列总目录在000集 PHP要怎么学–【思维导图知识范围】 文章目录 本系列校训本项目使用技术 上效果图主页注册&#xff0c;登陆 phpStudy 设置导数据库项目目录如图&#xff1a;代码部分&#xff1a;控制器前台的首页 其它配套页面展示直接给第二套方案的页面吧第三套…...

antDesignMobile中Switch配合Form使用无效解决方案

介绍 Form和Switch合起来使用无效的原因就是因为Form.Item给Switch的是value值&#xff0c;而Switch中监听的是checked&#xff1b;所以说我们只需要做一层二次封装即可。非常简单~如下本文以antd-mobile举例&#xff0c;其他antd框架解决方案一致&#xff01;&#xff01;&am…...

记录springboot在k8s下无法读取文件问题

//加载配置文件 File file ResourceUtils.getFile("classpath:/template/job.yaml"); /对象映射 V1Job v1Job (V1Job) Yaml.load(file); 开发的时候使用上面的方法可以读取文件数据&#xff0c;但是部署到k8s容器中之后&#xff0c;读取文件出现报错&#xff0c…...

数据湖如何为企业带来9%的高增长?可否取代数据仓库?

什么是数据湖&#xff1f; 数据湖是一个集中的存储库&#xff0c;允许您以任何规模存储所有结构化和非结构化数据。您可以按原样存储数据&#xff0c;而不必首先构造数据&#xff0c;并运行不同类型的分析—从仪表板和可视化到大数据处理、实时分析和机器学习&#xff0c;以指…...

P2669 [NOIP2015 普及组] 金币

题目背景 NOIP2015 普及组 T1 题目描述 国王将金币作为工资&#xff0c;发放给忠诚的骑士。第一天&#xff0c;骑士收到一枚金币&#xff1b;之后两天&#xff08;第二天和第三天&#xff09;&#xff0c;每天收到两枚金币&#xff1b;之后三天&#xff08;第四、五、六天&a…...

【2023】华为OD机试真题Java CC++ Python JS Go-题目0250-选修课

题目0250-选修课 题目描述 现有两门选修课,每门选修课都有一部分学生选修,每个学生都有选修课的成绩,需要你找出同时选修了两门选修课的学生,先按照班级进行划分,班级编号小的先输出,每个班级按照两门选修课成绩和的降序排序,成绩相同时按照学生的学号升序排序。 输入…...

lama cleaner

这里写自定义目录标题 安装参数包含的额外plugins 代码结构FreehandBackground RemovalInteractiveSeg 安装 conda create --name lamacleaner python3.10 pip install -r requirements.txt pip install gfpgan pip install realesrgan pip install rembg pip install .如果…...

制作一个简易的计算器app

github项目地址&#xff1a;https://github.com/13008451162/AndroidMoblieCalculator 1、Ui开发 笔者的Ui制作的制作的比较麻烦仅供参考&#xff0c;在这里使用了多个LinearLayout对屏幕进行了划分。不建议大家这样做最好使用GridLayout会更加快捷简单 笔者大致划分是这样的…...

48. 旋转图像

题目介绍 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在** 原地** 旋转图像&#xff0c;这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,2,3],[4,5,6]…...

“深入解析Spring Boot:从入门到精通的完整指南“

标题&#xff1a;深入解析Spring Boot&#xff1a;从入门到精通的完整指南 摘要&#xff1a;本文将深入解析Spring Boot框架&#xff0c;从入门到精通&#xff0c;为读者提供全面的指南。我们将介绍Spring Boot的基本概念、核心特性以及使用方法&#xff0c;并通过示例代码演示…...

Shiro RememberMe反序列化漏洞深度解析与实战利用

1. 这个漏洞不是“老古董”&#xff0c;而是理解Java安全边界的活教材很多人看到CVE-2016-4437&#xff0c;第一反应是“Shiro都淘汰了&#xff0c;还讲这个干啥&#xff1f;”——我去年在给一家做政企内部系统的客户做渗透复测时&#xff0c;就遇到过一个上线三年的审批平台&…...

Python开发者首次使用Taotoken接入大模型API的完整步骤指南

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Python开发者首次使用Taotoken接入大模型API的完整步骤指南 对于Python开发者而言&#xff0c;接入大模型API进行应用开发已成为一…...

Hirschmann RS20-0800M4M4SDAE工业以太网交换机

Hirschmann RS20-0800M4M4SDAE 工业以太网交换机产品特点&#xff1a;端口配置&#xff1a;共8个端口&#xff0c;含6个RJ45电口和2个ST光纤接口。端口速率&#xff1a;所有端口均为100Mbps快速以太网。光纤类型&#xff1a;2个光纤端口为多模、ST接头。管理类型&#xff1a;二…...

Keil µVision链接器错误204解决方案

1. 问题现象与背景解析最近在使用Keil Vision进行嵌入式开发时&#xff0c;不少工程师遇到了一个令人头疼的链接器错误。具体表现为编译时出现"FATAL ERROR 204: INVALID KEYWORD"的致命错误&#xff0c;错误位置指向链接器控制文件中的特定行。这个问题在C166和C51两…...

探索Windows 10上的Android世界:揭秘WSA-Windows-10项目的3个技术突破

探索Windows 10上的Android世界&#xff1a;揭秘WSA-Windows-10项目的3个技术突破 【免费下载链接】WSA-Windows-10 This is a backport of Windows Subsystem for Android to Windows 10. 项目地址: https://gitcode.com/gh_mirrors/ws/WSA-Windows-10 想象一下&#…...

INT8量化下TVA注意力对齐精度保障方案

重磅预告&#xff1a;本专栏将独家连载系列丛书《智能体视觉技术与应用》部分精华内容&#xff0c;该书是世界首套系统阐述“因式智能体”视觉理论与实践的专著&#xff0c;特邀美国 TypeOne 公司首席科学家、斯坦福大学博士 Bohan 担任技术顾问。Bohan先生师从美国三院院士、“…...

HarmonyOS 6学习:解决图片放大后无法移动至边缘的matrix4矩阵变换技巧

从"卡在中间"到"自由拖拽"&#xff1a;一次完整的图片缩放平移边界问题攻关在HarmonyOS 6应用开发中&#xff0c;我最近遇到了一个看似简单却让人头疼的图片查看器问题&#xff1a;用户双指放大图片后&#xff0c;想要拖动查看边缘细节&#xff0c;却发现图…...

应对Claude Code访问不稳定,快速切换至Taotoken的应急方案

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 应对Claude Code访问不稳定&#xff0c;快速切换至Taotoken的应急方案 对于依赖Claude Code进行日常开发或自动化任务的用户来说&a…...

别再只比参数了!从插件生态到中文优化,聊聊ChatGPT和文心一言的“隐形”差异

超越参数之争&#xff1a;ChatGPT与文心一言的生态与本土化实战解析 当技术评测文章还在反复比较模型参数量与发布时间时&#xff0c;真正影响日常工作效率的往往是那些未被量化的"软实力"。本文将从插件生态构建与中文场景优化两个维度&#xff0c;带您重新认识这两…...

Lindy多步骤任务自动化落地全图谱(企业级架构师压箱底实践)

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;Lindy多步骤任务自动化落地全图谱&#xff08;企业级架构师压箱底实践&#xff09; Lindy效应在自动化系统设计中揭示了一个关键洞察&#xff1a;越久经考验的实践&#xff0c;其未来预期寿命越长。Lindy多步…...