Spring系列学习四、Spring数据访问

Spring数据访问

  • 一、Spring中的JDBC模板介绍
      • 1、新建SpringBoot应用
      • 2、引入依赖:
      • 3、配置数据库连接,注入dbcTemplate对象,执行查询:
      • 4,测试验证:
  • 二、整合MyBatis Plus
      • 1,在你的项目中添加MyBatis Plus的依赖:
      • 2,配置Mapper扫描路径
      • 3,创建Mapper
      • 4, 在服务类中,使用Mapper进行数据库操作:

欢迎回来,亲爱的朋友们!上一章我们介绍了Spring基础组件,并且基本纯Spring环境下实现了经典的Hello World,从中体会了Spring容器的使用,也看到了配置和使用有些麻烦,所以Spring又研发了Spring Boot 用来简化Spring的使用。

Spring Boot 是由 Spring 团队创建的一个用于简化 Spring 应用程序开发的框架。它基于约定优于配置的原则,通过提供自动配置、开箱即用等功能,简化了 Spring 应用程序的搭建和构建过程。Spring Boot 可以快速集成 Spring 的各个模块,并提供了一系列开发和部署的便利特性,如内嵌的 Servlet 容器、自动化的配置管理、健康监测、应用程序度量等。

近两年新的基本Spring的应用,多数都采用Spring Boot来简化应用的开发,而不是用纯原生Spring。 我们接下来对Spring的学习中,也会Spring Boot应用的基础上讲述。

话不多说,拿出你的笔记本和咖啡,开启我们今天的学习:Spring的数据访问。为什么要学习数据访问?因为在生活中,数据就像水,对于应用程序来说,数据就是灵魂,应用程序就是处理数据的,可见数据在应用程序开发中的核心重要。让我们一起来进入Spring访问数据的方法的学习中!

一、Spring中的JDBC模板介绍

在JAVA中,访问数据的操作,直接通过JDBC访问,整个操作可以说是相当的繁琐,在Spring中,对JDBC访问数据库,提供了很好的模板封装,即JdbcTemplate, 我们首先讲一下如何通过JdbcTemplate来访问数据库。Spring的JDBC模板是一个使得数据库的操作变得超级简单的神奇工具,使用它数据库访问将变得非常简单。

1、新建SpringBoot应用

在这里插入图片描述

2、引入依赖:

在这里插入图片描述

3、配置数据库连接,注入dbcTemplate对象,执行查询:

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

4,测试验证:

在这里插入图片描述

看,是不是就这么简单!不再需要写繁琐的代码建立连接,创建执行器,手工封装对象,处理SQLException、手动关闭数据库连接等。JdbcTemplate就像是一个特效药,处理了所有我们不想处理的烦琐事情,更多使用,请参见官方文档及API。

二、整合MyBatis Plus

JdbcTemplate相对于手工进行jdbc操作,已经方便快捷了很多,而MyBatis Plus作为一个数据库操作框架,提供了面向对象的操作方式,极大的简化了操作数据库的代码,提供了更加丰富的数据库操作方式,并且手动编写SQL也变得非常简洁,也是当前JAVA企业系统开发中,用的最为广泛的数据库操作框架,接下来我们要介绍的是如何将Spring和MyBatis Plus融为一体,有了MyBatis Plus的助力,系统中的数据库操作将无比的丝滑。
基于以上代码,只需要简单的两步,就可以完成整合和使用:

1,在你的项目中添加MyBatis Plus的依赖:

在这里插入图片描述

2,配置Mapper扫描路径

在这里插入图片描述

3,创建Mapper

在这里插入图片描述

4, 在服务类中,使用Mapper进行数据库操作:

在这里插入图片描述

看,就是这么简单!只需要几步,我们就成功的将MyBatis Plus整合到了我们的Spring项目中,并使用其强大的功能。
当然如果业务比较复杂的情况下,可以基于查询和更新的Wrapper进行复杂查询的封装或者使用mapper的xml文件的方式(推荐)。在这里插入图片描述

关于mybatis-plus的更深入的学习,请访问 Mybatis官网 Mybatis Plus示例

可能有同学会有疑问,整合mybatis plus到spring boot时,并没有任何的配置文件的调整,就已经生效了,有点太不可思议, 其实这正是spring boot简化spring开发所坚持的原则,约定优于配置的原则,通过提供自动配置、开箱即用,已经帮我们做好了,只有在我们需要调整时,再按文档进行配置调整即可。

体验完以上所有内容后,相信你已经感受到spring家族化繁为简的迷人之处,它会帮助我们处理一切繁琐的事情,让我们可以专注于写出更美、更富有创意的代码。

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

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

相关文章

elasticsearch系列三:常用查询语法

概述 前几篇我们介绍了如何在es中存储数据,如何更加合理的存储数据,今天我们来说下常用的查询语法,如何实现mysql中的等于、大于、小于、and 、or、in等方式。 案例 我们以kibana为例,比如sql中的等于,在es中可以用…

【1】Docker详解与部署微服务实战

Docker 详解 Docker 简介 Docker 是一个开源的容器化平台,可以帮助开发者将应用程序和其依赖的环境打包成一个可移植、可部署的容器。Docker 的主要目标是通过容器化技术实现应用程序的快速部署、可移植性和可扩展性,从而简化应用程序的开发、测试和部…

计算机组成原理之BCD码和奇偶校验码小白秒懂

BCD码简介 原文文档下载https://download.csdn.net/download/m0_46579394/88681870 BCD码也称二进码十进数,BCD码可分为有权码和无权码两类。其中,常见的有权BCD码有8421码、2421码、5421码,无权BCD码有余3码、余3循环码、格雷码。8421BCD码…

数据分析硬核工具Origin各版本安装指南

下载链接 https://pan.baidu.com/s/12mENFtRFdNaLzVKmE6w_Uw?pwd0531 1.鼠标右击【Origin 2022(64bit)】压缩包(win11及以上系统需先点击显示更多“选项”)选择【解压到 Origin 2022(64bit)】。 2.双击打开解压后的【Origin 2022(64bit)】文件夹。 3.…

最新AI系统ChatGPT网站H5系统源码,支持AI绘画,GPT语音对话+ChatFile文档对话总结+DALL-E3文生图

一、前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作Ch…

【基础篇】七、线程上下文类加载器打破双亲委派机制

文章目录 1、SPI机制2、JDBC案例之SPI机制3、打破双亲委派机制:线程上下文类加载器4、打破双亲委派机制:osgi模块化5、JDK9之后的类加载器6、小总结 1、SPI机制 SPI,Service Provider Interface,是JDK内置的一种服务提供发现机制…

NModbus-一个C#的Modbus协议库实现

NModbus-一个基于C#实现的Modbus通信协议库 最近在学习C#的时候,因为之前做过环保设备时使用C做过环保设备采集使用到了Modbus协议,当时看了一下基于C语言开发的libmodbus库。所以特意搜索看了一下C#下有什么Modbus协议库,在Github上面找了一…

Strateg策略模式(组件协作)

策略模式(组件协作) 链接:策略模式实例代码 注解 目的 正常情况下,一个类/对象中会包含其所有可能会使用的内外方法,但是一般情况下,这些常使用的类都是由不同的父类继承、组合得来的,来实现…

Feign远程调用

Feign远程调用 Fegin的使用步骤如下&#xff1a; 1&#xff09;引入依赖 我们在order-service服务的pom文件中引入feign的依赖&#xff1a; <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign&…

SadTalker数字人增加视频输出mp4质量精度

最近在用数字人简易方案&#xff0c;看到了sadtalker虽然效果差&#xff0c;但是可以作为一个快速方案&#xff0c;没有安装sd的版本&#xff0c;随便找了个一键安装包 设置如上 使用倒是非常简单&#xff0c;但是出现一个问题&#xff0c;就是输出的mp4都出马赛克了 界面上却…

基于图搜索的自动驾驶规划算法 - BFS,Dijstra,A*

本文将讲解BFS&#xff0c;Dijstra&#xff0c;A*&#xff0c;动态规划的算法原理&#xff0c;不正之处望读者指正&#xff0c;希望有兴趣的读者能在评论区提出一些这些算法的面试考点&#xff0c;共同学习&#xff0c;一起进步 0 图论基础 图有三种&#xff1a;无向图、有向…

基于 Linux 的批量上传本地 Git 仓库到 Github 的实践

基于 Linux 的批量上传本地 Git 仓库到 Github 的实践 一、需求二、上传本地 Git 仓库2.1 初始版本2.2 优化版本 三、 GitHub 创建空仓库3.1 初始版本3.2 优化版本 四、Gitee 创建空仓库 一、需求 app目录下的每个文件夹都是一个git仓库&#xff0c;如何使用shell脚本将所有gi…

Java核心知识点1-java和c++区别、隐式和显示类型转换

java和c区别 java通过虚拟机实现跨平台特性&#xff0c;但c依赖于特定的平台。java没有指针&#xff0c;它的引用可以理解为安全指针&#xff0c;而c和c一样具有指针。java支持自动垃圾回收&#xff0c;而c需要手动回收。java不支持多重继承&#xff0c;只能通过实现多个接口来…

自动驾驶学习笔记(二十三)——车辆控制模型

#Apollo开发者# 学习课程的传送门如下&#xff0c;当您也准备学习自动驾驶时&#xff0c;可以和我一同前往&#xff1a; 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo开放平台9.0专项技术公开课》免费报名—>传送门 文章目录 前言 运动学模型 动力学模型 总结…

Prometheus快速入门实战

介绍 prometheus 受启发于 Google 的 Brogmon 监控系统&#xff08;相似 kubernetes 是从 Brog 系统演变而来&#xff09;。2016 年 5 月继 kubernetes 之后成为第二个加入 CNCF 基金会的项目&#xff0c;同年 6 月正式发布 1.0 版本。2017 年底发布基于全新存储层的 2.0 版本…

nginx设置跨域访问

目录 一&#xff1a;前端请求 二&#xff1a;后端设置 网站架构前端使用jquery请求&#xff0c;后端使用nginxphp-fpm 一&#xff1a;前端请求 <script> $.getJSON(http://nngzh.youjoy.com/cc.php, { openid: sd, }, function(res) { alert(res); if(res.code 0) …

华锐视点为广汽集团打造VR汽车在线展厅,打破地域限制,尽享购车乐趣

随着科技的飞速发展&#xff0c;我们正在进入一个全新的时代——元宇宙时代。元宇宙是一个虚拟的世界&#xff0c;它不仅能够模拟现实世界&#xff0c;还能够创造出现实世界无法实现的事物。而汽车行业作为人类生活的重要组成部分&#xff0c;也在积极探索与元宇宙的融合&#…

CompletableFuture是什么?以及CompletableFuture的作用

文章目录 CompletableFuture 今天我们来聊聊 CompletableFuture CompletableFuture CompletableFuture 是 JDK1.8 里面引入的一个基于事件驱动的异步回调类。 简单来说&#xff0c;就是当使用异步线程去执行一个任务的时候&#xff0c;我们希望在任务结束以后触发一个后续的动作…

jmeter函数助手-常用汇总

一.函数助手介绍 1.介绍及作用 介绍&#xff1a; jmeter自带的一个特性&#xff0c;可以通过指定的函数规则创建后进行调用该函数&#xff0c;在后续接口请求参数中进行调用 作用 &#xff08;1&#xff09;做参数化。 2.如何使用 jmeter工具栏-->工具-->函数助手…

车牌识别技术,如何用python识别车牌号

目录 一.前言 二.运行环境 三.代码 四.识别效果 五.参考 一.前言 车牌识别技术&#xff08;License Plate Recognition, LPR&#xff09;在交通计算机视觉&#xff08;Computer Vision, CV&#xff09;领域具有非常重要的研究意义。以下是该技术的一些扩展说明&#xff1…