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

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家族化繁为简的迷人之处,它会帮助我们处理一切繁琐的事情,让我们可以专注于写出更美、更富有创意的代码。

相关文章:

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

Spring数据访问 一、Spring中的JDBC模板介绍1、新建SpringBoot应用2、引入依赖:3、配置数据库连接,注入dbcTemplate对象,执行查询:4,测试验证: 二、整合MyBatis Plus1,在你的项目中添加MyBatis …...

HBase 创建不分裂的表 ( 禁止 Table Split )

注意:由于 HBase 版本众多,配置表的语法在不同版本上会有差异,本文介绍的配置方法是在 1.4.9 版本上测试的,使用 HBase 2.0 的版本需要核实并修改相关配置方法! 有时候,出于特殊需要,我们希望对…...

docker入门概念详解

本篇文章对docker的一些基础概念和周边概念进行了详细解释。帮助你可以很好的理解docker是用来干什么的,docker是怎么工作的。其中有docker所运用到的技术解释,docker的不同发展版本,dokcer的架构,docker的生态等等详解。希望本片…...

C++程序设计实践报告【格式】

C程序设计实践报告 原XX工业学院 C程序设计实践报告 题目: 专业: 学号: 姓名: 年 月 日 目录 一、绪…...

浅谈数据仓库运营

一、背景 企业每天都会产生大量的数据,随着时间增长,数据会呈现几何增长,尤其在系统基建基础好的公司。好的数据仓库需要提前规划和好的运营,才能支持企业的发展,为企业提供数据分析基础。 二、目标 提高数据仓库存储…...

系列六、Consul

一、Consul 1.1、概述 Consul是一套开源的分布式服务发现和配置管理系统,由HashiCorp公司用Go语言开发。他提供了微服务系统中的服务治理、配置中心、控制总线等功能。这些功能中的每一个功能都可以单独使用,也可以一起使用以构建全方位的服务网格&…...

Java集合/泛型篇----第一篇

系列文章目录 文章目录 系列文章目录前言一、ArrayList和linkedList的区别二、HashMap和HashTable的区别三、Collection包结构,与Collections的区别四、泛型常用特点前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站…...

集合使用注意事项

集合使用注意事项总结 集合判空 判断所有集合内部的元素是否为空,使用 isEmpty() 方法,而不是 size()0 的方式 这是因为 isEmpty() 方法的可读性更好,并且时间复杂度为 O(1)。 集合转 Map 在使用 java.util.stream.Collectors 类的 toMap()…...

什么是 JavaScript 中的 WeakMap

在 JavaScript 中,WeakMap 是一种特殊的 Map 数据结构,它允许将对象作为键,而且键值对是弱引用的关系。 与 Map 不同的是,WeakMap 的键只能是对象,不能是其他类型的值。同时,当键对象没有任何引用时&#…...

nodejs+vue+ElementUi农产品团购销售系统zto2c

目标是为了完成小区团购平台的设计和实现,在疫情当下的环境,方便小区业主购入生活所需,减小居民的生活压力 采用B/S模式架构系统,开发简单,只需要连接网络即可登录本系统,不需要安装任何客户端。开发工具采…...

nacos入门篇001-安装与启动

1、下载zip包 我这里下载的是版本2.2.0 Nacos 快速开始 2、修改配置文件 2.1集群模式修改成单例模式 vi startup.sh 2.2 修改数据库配置信息 3、初始化数据库 3.1 创建db名称:db_nacos 3.2 执行mysql-schema.sql 3.3 执行完截图: 4、运行脚本启动 …...

WordPress主题大前端DUX v8.3源码下载

DUX主题8.3版本更新内容: 新增:Cloudflare Turnstile 免费验证功能 新增:子菜单页面模版,支持多级页面 新增:手机端文章内表格自动出现横向滚动条,可集体或单独设置滚动宽度 新增:标签云页面模版…...

RabbitMQ之快速入门、上手

前言 学习一样新技术、新框架,最重要的是学习其思想、原理。即原理性思维。 如果是因为工作原因,需要快速上手RabbitMQ,本篇或许适合你。 核心概念 Connection:publisher/consumer 和 broker 之间的 TCP 连接Channel…...

GBASE南大通用-GBase 8s数据库日志模式及切换

一、 GBase 8s数据库共有以下 4 种日志模式:无日志模式、缓冲日志模式、无缓冲日志模式、ANSI 模式。详细介绍如下: 1、无日志模式(Non logging): 采用无日志模式时,所有 DML 操作都不会被记录到日志中&…...

侵入式和非侵入式微服务框架的比较

微服务框架可以分为侵入式和非侵入式两种。侵入式框架需要对现有代码进行改造,而非侵入式框架则无需改造现有代码。 侵入式框架 侵入式框架将微服务治理功能嵌入到应用程序中,需要修改应用程序的代码。这种框架的优点是可以提供更强大的功能&#xff0…...

Go语言程序设计-第5章--函数

Go语言程序设计-第5章–函数 5.1 函数声明 每个函数声明都包含一个名字、一个形参列表、一个可选的返回列表以及函数体: func name(parameter-list) (result-list) {body }func add(x int, y int) int { return x y} func sub(x, y int) (z int) {z x - y; return} func f…...

数据被锁?被.mkp 勒索病毒攻击后的拯救行动

导言: 网络安全面临着越来越多的挑战,而.mallox勒索病毒则成为数字威胁中的一股强大势力。它的威胁不仅体现在其高度复杂的加密算法上,还表现在对受感染系统的深度渗透和数据的极大破坏上。以下是.mallox勒索病毒的主要威胁:如不…...

Fine-Tuning Language Models from Human Preferences

Abstract 奖励学习(reward learning)可以将强化学习(RL)应用到由人类判断定义奖励的任务中,通过询问人类问题来构建奖励模型。奖励学习的大部分工作使用了模拟环境,但是关于价值的复杂信息经常是以自然语言的形式表达的。我们相信语言奖励学习是使强化学习在现实世界任务…...

提升数据库性能的关键指南-Oracle AWR报告

文章目录 一、了解AWR报告:数据库性能的仪表盘二、生成AWR报告三、解读AWR报告的关键部分1.报告开头的系统基础信息2.ADDM发现3.负载概览(Load Profile)4.参数文件5.顶级前台等待事件6.SQL 统计信息-顶级SQL7.SGA Advisory AND PAG Advisory 一、了解AWR报告&#x…...

云计算IaaS、PaaS和SaaS之

提供的服务来比较如下两图 示例图 示例图...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

FastAPI 教程:从入门到实践

FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...

数据链路层的主要功能是什么

数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...

ServerTrust 并非唯一

NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列,以便知晓哪些列包含有价值的数据,…...

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...

4. TypeScript 类型推断与类型组合

一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...