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 操作都不会被记录到日志中&…...
侵入式和非侵入式微服务框架的比较
微服务框架可以分为侵入式和非侵入式两种。侵入式框架需要对现有代码进行改造,而非侵入式框架则无需改造现有代码。 侵入式框架 侵入式框架将微服务治理功能嵌入到应用程序中,需要修改应用程序的代码。这种框架的优点是可以提供更强大的功能࿰…...
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之
提供的服务来比较如下两图 示例图 示例图...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...

STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...

HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...

Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果,并通过实时消息推送更新车…...