使用JdbcTemplate 进行数据库的增、删、改、查

一、概述

1、为什么选择 Spring Boot ?

Spring Boot 是目前 Java 社区最流行、最有影响力的技术之一,也是下一代企业级应用开发的首选技术。Spring Boot 由 Spring 衍生而来,继承了其所有的有点,为开发者带来了巨大的便利。

“We use a lot of the tools that come with the Spring framework and reap the benefits of having a lot of the out of the box solutions, and not having to worry about writing a ton of additional code—so that really saves us some time and energy.”

     -----SEAN GRAHAM, APPLICATION TRANSFORMATION LEAD, DICK’S SPORTING GOODS

“我们使用了Spring框架附带的许多工具,并获得了许多开箱即用的解决方案,而不必担心编写大量额外的代码,因此这确实节省了我们的时间和精力。”
                                                                      -----肖恩·格雷厄姆,迪克体育用品应用转型主管

2、Spring Boot 3特性:

  • Spring Boot 简化开发
  • 继承了 Spring 的优点
  • 可以快速创建独立运行的 Spring 项目
  • 习惯有配置(少量配置即可开发)
  • 拥有大量的自动配置

3、Spring Boot  对数据库连接支持

        Spring Boot 具有自动配置特性,能够根据应用程序的依赖和配置信息,自动配置数据源。 在大多数情况下,Spring Boot将自动配置为使用HikariCP作为默认数据库连接池。 开发者只需要提供必要的数据库连接信息,Spring Boot就能自动完成数据源的配置过程,极大地简化了开发者的工作。

Spring Boot 提供的与数据相关的场景启动器

二、使用JdbcTemplate 进行数据库的增、删、改、查

1、什么是JdbcTemplate

JdbcTemplated 是Spring 对 JDBC 的封装,使 JDBC 更加易于使用。更为关键的是,JdbcTemplate 对象也是通过自动配置机制注册到 IOC 容器中的。

JdbcTemplate官方文档

2、使用

1.引入依赖
<dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId>
</dependency><dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-jdbc</artifactId><version>3.3.5</version>
</dependency>
2.配置数据库相关的数据
spring:datasource:name: big_eventdriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/big_event?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=utf-8&autoReconnect=true&useSSL=false&allowMultiQueries=true&useAffectedRows=trueusername: root   # 自己数据库的用户名password: 123456   # 数据库登录的密码
3.创建一个数据表
create table jdbc_test
(ds_id   int auto_increment comment '主键id'primary key,ds_type varchar(100) null comment '数据源类型',ds_name varchar(100) null comment '数据源名称'
)comment '数据源配置表' engine = InnoDB;
4.创建控制包 controller 下的 JdbcController.java
package com.example.demo.controller;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.List;
import java.util.Map;@RestController
public class JdbcController {@AutowiredJdbcTemplate jdbcTemplate;@GetMapping("/insert")public String insert(String type, String name) {if (StringUtils.isEmpty(type) || StringUtils.isEmpty(name)) {return "参数错误";}try {jdbcTemplate.update("insert into jdbc_test(ds_type, ds_name) values(?, ?)", type, name);return "插入成功";} catch (Exception e) {return "插入失败: " + e.getMessage();}}@GetMapping("/delete")public String delete(int id) {if (id < 0) {return "参数错误";}try {int rowsAffected = jdbcTemplate.update("delete from jdbc_test where ds_id = ?", id);if (rowsAffected == 0) {return "未找到该条数据";}return "删除成功";} catch (Exception e) {return "删除失败: " + e.getMessage();}}@GetMapping("/update")public String update(int id, String type, String name) {if (id < 0 || StringUtils.isEmpty(type) || StringUtils.isEmpty(name)) {return "参数错误";}try {int rowsAffected = jdbcTemplate.update("update jdbc_test set ds_name = ?, ds_type = ? where ds_id = ?", name, type, id);if (rowsAffected == 0) {return "未找到该条数据";}return "更新成功";} catch (Exception e) {return "更新失败: " + e.getMessage();}}@GetMapping("/selects")public List<Map<String, Object>> selects() {try {List<Map<String, Object>> result = jdbcTemplate.queryForList("select * from jdbc_test");return result;} catch (Exception e) {throw new RuntimeException("查询失败: " + e.getMessage(), e);}}
}

3、验证

1.insert 验证:在浏览器中输入
http://localhost:8080/insert?type=test&name=测试类

结果如下:  

表中显示: 

 2.update 验证:在浏览器中输入
http://localhost:8080/update?id=3&type=test1&name=测试类~~~~~~~~

结果如下: 

表中显示: 

3.delete验证:在浏览器中输入
http://localhost:8080/delete?id=3

 结果如下: 

 表中显示: 

4.selects验证:在浏览器中输入
http://localhost:8080/selects

结果如下: 

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

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

相关文章

EHOME视频平台EasyCVR萤石设备视频接入平台视频诊断技术可以识别哪些视频质量问题?

EasyCVR视频监控汇聚管理平台是一款针对大中型项目设计的跨区域网络化视频监控集中管理平台。萤石设备视频接入平台EasyCVR不仅具备视频资源管理、设备管理、用户管理、运维管理和安全管理等功能&#xff0c;还支持多种主流标准协议&#xff0c;如GB28181、GB35114、RTSP/Onvif…

这款Chrome 插件,帮助我们复制网页上不能复制的内容

前言 最近在上网查找博客时&#xff0c;经常遇到想要复制网页上的内容&#xff0c;但是&#xff0c;一点击复制&#xff0c;就会弹出来各种各样的弹框&#xff0c;导致复制不能继续&#xff0c;非常麻烦。这时&#xff0c;我想到了一个办法&#xff0c;那就是下载安装一个chro…

数字后端零基础入门系列 | Innovus零基础LAB学习Day8

###LAB15 Detail Routing for Signal Integrity, Timing, Power and Design for Yield 这个章节虽然标题有点长&#xff0c;但不要被它吓到&#xff0c;其实这个章节就是Innovus工具的绕线Routing。只不过这个阶段做Route不是仅仅是把所有的逻辑连接&#xff0c;用实际的金属层…

ISUP协议视频平台EasyCVR视频融合平台接入各类摄像机的方法

安防视频监控ISUP协议视频平台EasyCVR兼容性强、支持灵活拓展&#xff0c;平台可提供视频远程监控、录像、存储与回放、视频转码、视频快照、告警、云台控制、语音对讲、平台级联等视频能力。 想要将摄像机顺利接入EasyCVR平台&#xff0c;实现视频监控的集中管理和分发&#x…

QEMU学习之路(4)— Xilinx开源项目systemctlm-cosim-demo安装与使用

QEMU学习之路&#xff08;4&#xff09;— Xilinx开源项目systemctlm-cosim-demo安装与使用 一、前言 项目说明&#xff1a;https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/862421112/Co-simulation 操作系统&#xff1a;Ubuntu 20.04.6 LTS gcc版本&#xff1a;9.4…

【解决办法】无法使用右键“通过VSCode打开文件夹”

个人博客&#xff1a;苏三有春的博客 前言 作者的编程环境为VScode&#xff0c;工作时常使用VScode打开整个工程文件夹。如果先打开VScode再从VScode中选择文件夹打开效率太慢&#xff0c;作者一般使用的方式是右键文件夹&#xff0c;直接选择"通过code打开文件夹"…

Java环境下配置环境(jar包)并连接mysql数据库

目录 jar包下载 配置 简单连接数据库 一、注册驱动&#xff08;jdk6以后会自动注册&#xff09; 二、连接对应的数据库 以前学习数据库就只是操作数据库&#xff0c;根本不知道该怎么和软件交互&#xff0c;将存储的数据读到软件中去&#xff0c;最近学习了Java连接数据库…

ES + SkyWalking + Spring Boot:日志分析与服务监控(三)

目录 一、搭建SkyWalking 1.1 版本选择 1.2 下载安装 1.3 配置启动 1.4 SkyWalking UI介绍 二、Springboot项目使用 2.1 Agent下载 2.2 Agent配置skywalking oap地址 2.3 IDEA配置Agent地址 2.4 生成的ES索引介绍 三、在kibana上查看日志 四、问题和解决 3.1 日志…

读数据工程之道:设计和构建健壮的数据系统28数据服务常见关注点

1. 使用场景 1.1. 为分析和BI&#xff0c;也就是统计分析、报表和仪表板提供数据服务 1.1.1. 是数据服务最为常见的目标 1.1.2. 这些概念的提出早于IT和数据库&#xff0c;但是它们对于了解业务、组织和财务流程的利益相关者来说仍然至关重…

Linux中断、软中断、MMU内存映射-深入理解

中断&#xff1a; Linux中&#xff0c;中断上半部不能嵌套&#xff0c;如果一直保存上下文&#xff0c;栈可能会溢出。中断上半部处理紧急事情&#xff0c;下半部处理非紧急事情。下半部通常通过软中断来实现。在上半部执行完后会执行下半部的软中断&#xff0c;如果囤积了A和…

MySQL之JDBC入门详解

01-JDBC入门 一、JDBC概念 jdbc : java database connection , java数据库连接 jdbc是sun公司定义的java程序访问数据库的规范。 二、JDBC操作需要6步 三、入门程序 1、使用eclipse打开一个新的工作空间 2、切换到java视图界面 3、创建java工程&#xff1a;01-jdbc-helloworl…

Vue3版本的uniapp项目运行至鸿蒙系统

新建Vue3版本的uniapp项目 注意&#xff0c;先将HbuilderX升级至最新版本&#xff0c;这样才支持鸿蒙系统的调试与运行&#xff1b; 按照如下图片点击&#xff0c;快速升级皆可。 通过HbuilderX创建 官方文档指导链接 点击HbuilderX中左上角文件->新建->项目 创建vue3…

html简易流程图

效果图 使用htmlcssjs&#xff0c;无图片&#xff0c;没用Canvas demo: <!DOCTYPE html> <html> <head><link href"draw.css" rel"stylesheet" /><script src"draw.js" type"text/javascript"></…

人工智能原理实验一:知识的表示与推理实验

一、实验目的 本实验课程是计算机、智能、物联网等专业学生的一门专业课程&#xff0c;通过实验&#xff0c;帮助学生更好地掌握人工智能相关概念、技术、原理、应用等&#xff1b;通过实验提高学生编写实验报告、总结实验结果的能力&#xff1b;使学生对智能程序、智能算法等有…

针对解决前后端BUG的个人笔记

1-IDEA Q&#xff1a;Required Java version 17 is not supported by SDK 1.8. The maximum supported Java version is 8. A: 我们只知道IDEA页面创建Spring项目&#xff0c;其实是访问spring initializr去创建项目。故我们可以通过阿里云国服去间接创建Spring项目。将https…

Linux操作系统 ------(3.文本编译器Vim)

目录 1.前言 2.本章学习目标 3.vim的三种工作模式 3.1一般模式‌ 3.2编辑模式‌ 3.3命令行模式‌ 4.运行vim 5.vim 不同工作模式下的常见命令 6.一般模式下的功能键 6.1移动光标类 6.2删除、复制和粘贴类 6.3查找替换类 7.从一般模式进入编辑模式 8.命令行模式下的…

4种鼓励创业创新的方法

随着市场趋于饱和&#xff0c;许多企业&#xff0c;尤其是初创企业&#xff0c;很难在竞争中保持领先地位。技术为企业彻底改变其营销和管理策略铺平了道路。另一个经过实践检验的成功渗透特定市场的方法是在办公室内部激发创新&#xff0c;从员工到品牌皆如此。 那么究竟如何…

【华为HCIP实战课程31(完整版)】中间到中间系统协议IS-IS路由汇总详解,网络工程师

一、IS-IS的汇总 1、可以有效减少在LSP中发布的路由条目,减小对系统资源的占用。 2、会减少LSP报文的扩散,接收到该LSP报文的其他设备路由表中只会出现一条聚合路由。 3、可以避免网络中的路由震荡,提高了网络的稳定性。 4、被聚合的路由可以是IS-IS路由,也可以是被引入…

后端java——如何为你的网页设置一个验证码

目录 1、工具的准备 2.基本方法 3.实现类 4.实践 HTML文件&#xff1a; Java文件1:创建验证码 Java文件2:验证验证码 本文通过HUTOOL实现&#xff1a;Hutool参考文档Hutool&#xff0c;Java工具集https://hutool.cn/docs/#/ 1、工具的准备 如果我们通过hutool来实现这个…

1、Qt6 Quick 简介

一、Qt6 Quick 简介 1、Qt Quick简介 Qt Quick 是 Qt 6 中使用的用户界面技术的总称。它是在 Qt 4 中引入的&#xff0c;现在在 Qt 6 中进行了扩展。Qt Quick 本身是几种技术的集合&#xff1a; QML——用户界面标记语言JavaScript - 动态脚本语言Qt C - 高度可移植的增强型…