【JavaWeb】Day45.Mybatis——入门程序

什么是MyBatis?

MyBatis是一款优秀的持久层框架,用于简化JDBC的开发。

(持久层:指的是就是数据访问层(dao),是用来操作数据库的。)

(框架:是一个半成品软件,是一套可重用的、通用的、软件基础代码模型。在框架的基础上进行软件开发更加高效、规范、通用、可拓展。)

 官网:入门_MyBatis中文网

实现入门程序

程序分析

以前我们是在图形化客户端工具中编写SQL查询代码,发送给数据库执行,数据库执行后返回操作结果。

图形化工具会把数据库执行的查询结果,使用表格的形式展现出来

现在使用Mybatis操作数据库,就是在Mybatis中编写SQL查询代码,发送给数据库执行,数据库执行后返回结果。

 Mybatis会把数据库执行的查询结果,使用实体类封装起来(一行记录对应一个实体类对象)

Mybatis操作数据库的步骤:

1. 准备工作(创建springboot工程、数据库表user、实体类User)

2. 引入Mybatis的相关依赖,配置Mybatis(数据库连接信息)

3. 编写SQL语句(注解/XML)

1. 准备工作

1.1 创建springboot工程

创建springboot工程,并导入 mybatis的起步依赖、mysql的驱动包。

项目工程创建完成后,自动在pom.xml文件中,导入Mybatis依赖和MySQL驱动依赖

1.2 数据准备

创建用户表user,并创建对应的实体类User。

实体类

  - 实体类的属性名与表中的字段名一一对应。

 配置Mybatis

在之前使用图形化客户端工具,连接MySQL数据库时,需要配置:

连接数据库的四大参数:

 - MySQL驱动类

 - 登录名

 - 密码

 - 数据库连接字符串

基于上述分析,在Mybatis中要连接数据库,同样也需要以上4个参数配置。

       在springboot项目中,可以编写application.properties文件,配置数据库连接信息。我们要连接数据库,就需要配置数据库连接的基本信息,包括:driver-class-name、url 、username,password。

编写SQL语句

在创建出来的springboot工程中,在引导类所在包下,在创建一个包 mapper。在mapper包下创建一个接口 UserMapper ,这是一个持久层接口(Mybatis的持久层接口规范一般都叫 XxxMapper)。

 

@Mapper注解:表示是mybatis中的Mapper接口

 - 程序运行时:框架会自动生成接口的实现类对象(代理对象),并给交Spring的IOC容器管

@Select注解:代表的就是select查询,用于书写select查询语句

单元测试

        在创建出来的SpringBoot工程中,在src下的test目录下,已经自动帮我们创建好了测试类 ,并且在测试类上已经添加了注解 @SpringBootTest,代表该测试类已经与SpringBoot整合。

        该测试类在运行时,会自动通过引导类加载Spring的环境(IOC容器)。我们要测试那个bean对象,就可以直接通过@Autowired注解直接将其注入进行,然后就可以测试了。

 解决SQL警告与提示

      默认我们在UserMapper接口上加的@Select注解中编写SQL语句是没有提示的。 如果想让idea给我们提示对应的SQL语句,我们需要在IDEA中配置与MySQL数据库的链接。可以做如下配置:

配置完成之后,发现SQL语句中的关键字有提示了,但还存在不识别表名(列名)的情况:

 产生原因:Idea和数据库没有建立连接,不识别表信息

 解决方案:在Idea中配置MySQL数据库连接

 在配置的时候指定连接那个数据库,如上图所示连接的就是mybatis数据库。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/818716.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【企业动态】瑞芯微高级业务总监来访东胜物联,共探新能源汽车市场合作

近日,瑞芯微高级业务总监阙金珍一行来访东胜物联参观交流,并就深化合作进行讨论。 东胜物联与瑞芯微建有长期稳固的合作关系,基于RK3588、RK3399、RK3568等处理器,推出了多款嵌入式核心硬件产品,包括核心板、网关等&a…

工业物联网网关

在数字化浪潮席卷全球的今天,工业物联网(IIoT)作为连接物理世界与数字世界的桥梁,正在逐渐改变传统工业的面貌。而作为IIoT的核心枢纽,工业物联网网关发挥着至关重要的作用。今天,我们就来深入了解一下工业…

使用webpack5+TypeScript+npm发布组件库

一、前言 作为一只前端攻城狮,没有一个属于自己的组件库,那岂不是狮子没有了牙齿,士兵没有了武器,姑娘没有了大宝SOD蜜,你没有了我.... 言归正传,下面将给大家介绍如何通过webpack5编译一个TS组件发布到NPM…

【c 语言】声明了一个指针,会给指针分配内存吗?

🎈个人主页:豌豆射手^ 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:C语言 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步&…

租用境外服务器,越南服务器的优势有哪些

自从中国加入世界贸易组织之后,国内经济增加速度非常快,同时越来越多的人选择去东南亚国家发展,因为当地的中国人很多,所以中国企业在当地面临着更小的文化差异。东南亚地区也是最新的经济体,互联网正处于蓬勃发展的阶…

docker服务无法启动

背景:断电重启经常会导致磁盘io错误,甚至出现磁盘坏块 这时可以使用xfs_repair来修复磁盘,但是修复过程可能会导致部分数据丢失 xfs_repair -f -L /dev/sdc问题一: Apr 15 19:27:15 Centos7.6 systemd[1]: Unit docker.service e…

【十一】MyBatis Plus 原理分析

MyBatis Plus 原理分析 摘要 Java EE开发中必不可少ORM框架,目前行业里最流行的orm框架非Mybatis莫属了,而Mybatis框架本身没有提供api实现,所以市面上推出了Mybatis plus系列框架,plus版是mybatis增强工具,用于简化My…

嵌入式系统及应用-1.1嵌入式

嵌入式系统 定义:看不见的计算机,一般不能被用户编程,它有一些专用的I/O设备,对用户的接口是应用专用的 通常将嵌入式计算机系统简称为嵌入式系统。 嵌入式系统是以应用为中心,以计算机技术为基础、软件硬件可裁剪、…

记录一下如何腾讯云服务器用客户端连MySQL

我一般喜欢用IDEA连数据库,别问我为啥(就喜欢用一个软件解决所有问题) 当然写SQL语句个人还是觉得sqlyog体验最佳!

【C/C++】什么是内存泄漏?如何检测内存泄漏?

一、内存泄漏概述 1.1 什么是内存泄漏 内存泄漏是在没有自动 gc 的编程语言里面,经常发生的一个问题。 自动垃圾回收(Automatic Garbage Collection,简称 GC)是一种内存管理技术,在程序运行时自动检测和回收不再使用…

MySQL8.0.36-社区版:错误日志(3)

mysql有个错误日志,是专门记录错误信息的,这个功能默认是开启的 一般都是在/var/log/mysqld.log 日志中存放 1.错误日志的位置 首先我们使用命令去查看一下,这个错误日志文件究竟在哪 进入到mysql中,使用命令 show variables…

FME学习之旅---day24

我们付出一些成本,时间的或者其他,最终总能收获一些什么。 高级地理数据库 教程:地理数据库转换 上述教程包括 如何使用 Esri 模板地理数据库 该内容在FME学习之旅day19 已经学习过 使用地理数据库属性域:编写编码属性域 属…

机器学习实训 Day1(线性回归练习)

线性回归练习 Day1 手搓线性回归 随机初始数据 import numpy as np x np.array([56, 72, 69, 88, 102, 86, 76, 79, 94, 74]) y np.array([92, 102, 86, 110, 130, 99, 96, 102, 105, 92])from matplotlib import pyplot as plt # 内嵌显示 %matplotlib inlineplt.scatter…

古月·ROS2入门21讲——学习笔记(一)核心概念部分1-14讲

讲解视频地址:1.ROS和ROS2是什么_哔哩哔哩_bilibili 笔记分为上篇核心概念部分和下篇常用工具部分 下篇:古月ROS2入门21讲——学习笔记(二)常用工具部分15-21讲-CSDN博客 目录 第一讲:ROS/ROS2是什么 1. ROS的诞生…

Python-GEE遥感云大数据分析、管理与可视化及多领域案例实践应用

随着航空、航天、近地空间遥感平台的持续发展,遥感技术近年来取得显著进步。遥感数据的空间、时间、光谱分辨率及数据量均大幅提升,呈现出大数据特征。这为相关研究带来了新机遇,但同时也带来巨大挑战。传统的工作站和服务器已无法满足大区域…

海外代理IP在跨境电商中发挥什么作用?

在我国跨境电商的发展中,海外代理IP的应用日益广泛,它不仅帮助商家成功打入国际市场,还为他们在多变的全球电商竞争中保持优势。下面是海外代理IP在跨境电商中五个关键的应用场景。 1、精准的市场分析 了解目标市场的消费者行为、产品趋势以…

金蝶云星空与泛微OA对接案例-实现流程一体化

摘要:在企业数字化中,集成内部各业务系统以实现数据共享与流程协同,已成为提升运营效率、优化决策的重要选择。本文将以某企业成功实现金蝶云星空与泛微OA系统对接为例,详细解析双方在人员信息、组织架构、销售合同、付款申请、报…

快速探索随机树-RRT

文章目录 简介原理算法运动规划的变体和改进简介 快速探索随机树(RRT)是一种算法,旨在通过随机构建空间填充树来有效搜索非凸高维空间。该树是从搜索空间随机抽取的样本中逐步构建的,并且本质上偏向于向问题的大型未搜索区域生长。RRT 由 Steven M. LaValle 和 James J. K…

面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!

时间片 超线程 上下文切换 切换查看 线程调度 引起线程上下文切换的因素 由于现在大多计算机都是多核CPU,多线程往往会比单线程更快,更能够提高并发,但提高并发并不意味着启动更多的线程来执行。更多的线程意味着线程创建销毁开销加大、…

python数据结构与算法之线性表

1、线性表 是一种由n个元素(n> 0 )数据元素组成的有限序列,所包含的元素数量通常被称为表的长度 n 0 的表被称为空表,线性表的数据元素可以单一也可以复杂,可以是整数,字符串,也可以是由几…