SpringBoot(八)之JdbcTemplate

ops/2024/10/15 18:50:43/

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

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

5. 创建 Repository

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

java">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

java">@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.ppmy.cn/ops/42608.html

相关文章

每天一个数据分析题(三百三十五)

下图表中&#xff0c;适用于展示连续型数据的数据分布情况的是&#xff08;&#xff09; A. 条形图 B. 饼图 C. 直方图 D. 箱线图 数据分析认证考试介绍&#xff1a;点击进入 题目来源于CDA模拟题库 点击此处获取答案

深度学习之基于YoloV5钢材微小缺陷检测系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与目标 在钢材生产过程中&#xff0c;由于各种因素&#xff0c;钢材表面可能会出现微小缺陷&#xff…

视频批量剪辑神器大揭秘:一键删减片头片尾,高效打造精彩视频内容!

在数字化时代的浪潮中&#xff0c;视频已经成为人们传递信息、分享生活的重要载体。无论是制作一部精美的宣传片&#xff0c;还是剪辑一段有趣的短视频&#xff0c;视频时长都是至关重要的因素。然而&#xff0c;很多视频创作者在调整视频时长时遇到了困难&#xff0c;耗费了大…

YOLOv5/v7 引入 RepVGG 重参数化模块

YOLOv5/v7 中引入 RepVGG 重参数化模块 1. 介绍 RepVGG 是由 Megvii Research 团队于 2021 年提出的深度卷积神经网络架构&#xff0c;它通过重参数化 VGGNet 架构&#xff0c;显著提高了模型的性能和效率。RepVGG 架构在 YOLOv5 和 YOLOv7 等目标检测模型中得到了广泛应用&a…

Java18新特性

1 Java 18 引入了一些新特性和改进&#xff0c;旨在提高开发效率、性能和语言的易用性。以下是其中几个值得注意的新特性&#xff1a; 默认使用 UTF-8 (JEP 400): Java 18 默认字符集现在是 UTF-8&#xff0c;这简化了文本处理并避免了以前因地区设置不同而可能导致的乱码问题…

【产品经理】输出

引言&#xff1a;        在最近频繁的产品管理职位面试中&#xff0c;我深刻体会到了作为产品经理需要的不仅仅是对市场和技术的敏锐洞察&#xff0c;更多的是在复杂多变的环境中&#xff0c;如何运用沟通、领导力和决策能力来引导产品从概念走向市场。这一系列博客将分享…

ts 学习笔记

:void 代表没有返回值 一般用于函数 1顶级类型 any unknown(不可以赋值给其他类型&#xff0c;只能赋值给自身或者any,没有办法读任何属性&#xff0c;方法也不可以调用) 2 Object 3 Number String Boolean 4 number string boolean 5 1 ‘’a’ false 6 never interface // in…

ping 探测网段哪些地址被用

#!/bin/bash# 遍历192.168.3.1到192.168.3.254 for i in {1..254} doip"192.168.3.$i"# 对每个IP地址进行三次ping操作if ping -c 3 -W 1 $ip > /dev/null 2>&1thenecho "$ip: yes"fi done$ sh test.sh 192.168.3.1: yes 192.168.3.95: yes 192.…