SpringBoot(八)之JdbcTemplate

SpringBoot(八)之JdbcTemplate

文章目录

    • SpringBoot(八)之JdbcTemplate
      • 1.添加依赖项:
      • 2. 配置数据库连接
      • 3.创建表信息
      • 4. 创建数据模型
      • 5. 创建 Repository
      • 6.测试,创建TestController

spring-boot-starter-jdbc 是 Spring Boot 提供的一个用于简化 JDBC 操作的启动器。使用这个启动器,你可以快速配置和使用 JDBC 进行数据库操作。以下是一个详细指南,介绍如何在 Spring Boot 项目中使用 spring-boot-starter-jdbc

1.添加依赖项:

pom.xml(如果使用 Maven)中添加以下依赖项:

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency>
</dependencies>

2. 配置数据库连接

application.propertiesapplication.yml 文件中配置数据库连接信息。以下是 application.properties 的示例配置(以 MySQL 为例):

spring:datasource:username: rootpassword: rooturl: jdbc:mysql://192.168.56.102:3306/boot-test?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTCdriver-class-name: com.mysql.cj.jdbc.Driver

3.创建表信息

CREATE TABLE `sys_user` (`id` int NOT NULL AUTO_INCREMENT,`name` varchar(255) DEFAULT NULL,`age` int DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

4. 创建数据模型

定义你的实体类。例如,一个简单的用户实体类 SysUser

public class SysUser {private Integer id;private String name;private int age;// Getters and setters
}

5. 创建 Repository

使用 JdbcTemplate 进行数据库操作。首先,创建一个 UserRepository 类:

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;import java.util.List;@Repository
public class SysUserRepository {private final JdbcTemplate jdbcTemplate;@Autowiredpublic SysUserRepository(JdbcTemplate jdbcTemplate) {this.jdbcTemplate = jdbcTemplate;}private final RowMapper<SysUser> rowMapper = (rs, rowNum) -> {SysUser user = new SysUser();user.setId(rs.getInt("id"));user.setName(rs.getString("name"));user.setAge(rs.getInt("age"));return user;};public List<SysUser> findAll(){return jdbcTemplate.query("SELECT * FROM SYS_USER",rowMapper);}public int save(SysUser user){return jdbcTemplate.update("INSERT INTO SYS_USER (name, age) VALUES (?, ?)",user.getName(),user.getAge());}//其他增删改查信息}

6.测试,创建TestController

@RestController
public class TestController {private final SysUserRepository sysUserRepository;@Autowiredpublic TestController(SysUserRepository sysUserRepository) {this.sysUserRepository = sysUserRepository;}@GetMapping("/getUsers")public List<SysUser> getAllUser(){return sysUserRepository.findAll();}@GetMapping("/addUser")public int addUser(@RequestParam("name") String name,@RequestParam("age") int age){SysUser sysUser = new SysUser();sysUser.setName(name);sysUser.setAge(age);return sysUserRepository.save(sysUser);}
}

启动项目,访问 http://localhost:8080/addUser?name=zhangsan&age=22http://localhost:8080/addUser?name=lisi&age=25新增zhangsan和lisi两个用户

再次访问http://localhost:8080/getUsers,观察返回

[{"id": 1,"name": "zhangsan","age": 22},{"id": 2,"name": "lisi","age": 25}
]

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

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

相关文章

Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现

目录 一、用Springboot读取本地工作目录的文件和文件结构 1.1、需求介绍 1.2、后端传递数据 1.2.1、语言框架 1.2.2、本地工作目录示范 1.2.3、后端代码 ①controller层 ②service层 ③响应的数据 二、总结 一、用Springboot读取本地工作目录的文件和文件结构 1.1、…

Win10玩红警黑屏有声音的解决方法

Win10玩红警黑屏怎么解决&#xff1f;红色警戒&#xff0c;可以说是一款深受青少年朋友喜爱的网游&#xff0c;但是&#xff0c;当我们在使用win10电脑运行红色警戒的时候免不了会出现不兼容、权限不足等问题。相信玩过红警的小伙伴都有遇到过黑屏的问题&#xff0c;那该怎么解…

SpringBoot基础入门:快速构建RESTfulAPI

Spring Boot基础入门&#xff1a;快速构建RESTful API 在当前的软件开发领域&#xff0c;微服务架构已经成为一种流行的设计模式。Spring Boot作为一款基于Spring框架的开源项目&#xff0c;它简化了基于Spring的应用开发过程&#xff0c;使得开发者可以快速搭建和部署微服务。…

网络统一监控运维管理解决方案(ppt原件方案)

网络统一监控运维管理解决方案 1. 构建完善的网络运维体系&#xff1a;通过组织、流程、制度的完善、支撑手段的建设&#xff0c;构建低成本高效率的IT运营体系&#xff0c;推动IT运营工作自动化、智能化、一体化化发展。 2. 构建网络一体化监控能力&#xff1a;构建从设备、…

【C语言】冒泡排序详解

前言 排序&#xff0c;就是将一组数据按特定的规则调换位置&#xff0c;使这组数据具有某种顺序关系&#xff0c;一般就是递增或递减。 在接触C语言不久&#xff0c;我们就会遇到其中一种有名的排序算法——“冒泡排序”&#xff0c;不知道你是否已经掌握了&#xff0c;如果还…

【Go语言入门学习笔记】Part3.指针和运算符、以及基本输入

一、前言 仍然好多和C语言类似&#xff0c;计算机的学生应该是很容易入门这一环节&#xff0c;我还在最后的输入中看到了一些些Java输入的影子&#xff0c;而自动的变量类型推断更是有Python那个味道&#xff0c;正可谓几百家之所长了。 二、学习代码 package mainimport (&q…

鸿蒙系统和安卓系统通过termux搭建Linux系统—Centos

目录 1. 前言 2. 效果图展示 3. 安装termux 4. 安装Centos系统 4.1 更换源 4.2 拉取镜像 4.3 启动centos 5.结尾 1. 前言 大家好&#xff0c;我是jiaoxingk 今天这篇文章让你能够在手机或者平板上使用Linux-Centos系统 让你随时随地都能操作命令行进行装13 2. 效果图展示…

节省时间与精力:用BAT文件和任务计划器自动执行重复任务

文章目录 1.BAT文件详解2. 经典BAT文件及使用场景3. 使用方法4. 如何设置BAT文件为定时任务5. 实例应用&#xff1a;自动清理临时文件 BAT文件&#xff0c;也就是批处理文件&#xff0c;是一种在Windows操作系统中自动执行一系列命令的文本文件。这些文件的扩展名为 .bat。通过…

[力扣题解] 1971. 寻找图中是否存在路径

题目&#xff1a;1971. 寻找图中是否存在路径 思路 并查集 代码 class Solution { private:int n 200005;int father[200005] {0};void init(){int i;for(i 0; i < n; i){father[i] i;}}int find(int u){if(u father[u]){return u;}else{return father[u] find(fa…

就业班 第三阶段(CICD) 2401--5.15 day2 自动化构建打包、部署(Jenkins + maven+ gitlab+tomcat)

一、平滑发布与灰度发布 **什么叫平滑&#xff1a;**在发布的过程中不影响用户的使用&#xff0c;系统不会因发布而暂停对外服务&#xff0c;不会造成用户短暂性无法访问&#xff1b; **什么叫灰度&#xff1a;**发布后让部分用户使用新版本&#xff0c;其它用户使用旧版本&am…

golang内置模块os常用操作函数 按功能分类整理

go语言中我们最常用的一个内置模块os模块&#xff0c;这个里面的函数虽然很多&#xff0c;但是分类整理后其实也就环境变量&#xff0c;用户&#xff0c;目录&#xff0c;文件进程和错误类型这几类&#xff0c;本文按照功能分类整理方便记忆和使用。 func Exit(code int) 退出当…

【吊打面试官系列】Java高并发篇 - ReadWriteLock 是什么 ?

大家好&#xff0c;我是锋哥。今天分享关于 【ReadWriteLock 是什么 &#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; ReadWriteLock 是什么 &#xff1f; 首先明确一下&#xff0c;不是说 ReentrantLock 不好&#xff0c;只是 ReentrantLock 某些时候有局限。 …

Excel工作表单元格单击选中事件,VBA动态计算同类数值总和

Excel工作表单元格单击选中事件,VBA动态计算同类数值总和(VX公众号:Excel潘谆白说VBA) 文章目录 前言一、运行效果二、代码前言 面对每月的消费账单,面对月底待还的信用卡或花呗,面对不足三位数的余额,你是否怀疑过账单自己的消费。你是否因此开始记账,每个月记流水,想知…

2024/5/22 学习杂记

为什么功率放大电路在模电中经常提到&#xff1f; 模拟信号&#xff1a;它是连续变化的电信号&#xff0c;它在时间上和幅度上都是连续的&#xff0c;能够代表信息的连续变化。大多数物理量为模拟信号&#xff0c;如&#xff1a;温度、压力、流量… 非电物理量通过传感器变换成…

鸿蒙 DevEcoStudio:发布进度条通知

使用notificationManager及wantAgent实现功能import notificationManager from ohos.notificationManager import wantAgent from ohos.app.ability.wantAgent Entry Component struct Index {State message: string 发布进度条通知progressValue: number0async publicDownloa…

基于DdddOcr通用验证码离线本地识别SDK搭建个人云打码接口Api

前言 最近介绍了一款免费的验证码识别网站,识别效率太低,考虑到ddddocr是开源的,决定搭建搭建一个,发现原作者sml2h3已经推出好久了,但是网上没有宝塔安装的教程,于是本次通过宝塔搭建属于自己的带带弟弟OCR通用验证码离线本地识别 原项目地址:https://github.com/sml2…

过滤器 -- Filter

ActionFilterAttribute: 示例:实现一个日志记录过滤器,记录每个控制器动作方法的执行时间和参数信息。 public class LogActionFilterAttribute : ActionFilterAttribute {public override void OnActionExecuting(ActionExecutingContext context){// 记录方法开始执行时间和参…

Serverless应用引擎SAE评测|一分钟部署在线游戏

Serverless应用引擎SAE评测|一分钟部署在线游戏 什么是Serverless应用引擎SAE一分钟部署在线游戏SAE控制台 资源释放其他操作 在进行Serverless应用引擎SAE评测之前&#xff0c;首先需要了解一下什么是SAE。 什么是Serverless应用引擎SAE Serverless应用引擎SAE&#xff08;Se…

代码随想录-算法训练营day50【动态规划12:最佳买卖股票时机含冷冻期、买卖股票的最佳时机含手续费、股票问题总结】

代码随想录-035期-算法训练营【博客笔记汇总表】-CSDN博客 第九章 动态规划part12● 309.最佳买卖股票时机含冷冻期 ● 714.买卖股票的最佳时机含手续费 ●总结309.最佳买卖股票时机含冷冻期 本题加了一个冷冻期,状态就多了,有点难度,大家要把各个状态分清,思路才能清晰…