Spring Boot 整合 JDBC实现增删改查(crud)的简单操作

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: Spring Boot 整合 JDBC实现增删改查(crud)的简单操作

建议您看本文章前,先看:[Springboot搭建简单Demp](https://blog.csdn.net/qq_44969643/article/details/106408784)





目录结构(红色代表需要的文件):

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20200607153744411.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0OTY5NjQz,size_16,color_FFFFFF,t_70)

pom.xml


```yaml

<dependency>

   <groupId>org.springframework.boot</groupId>

   <artifactId>spring-boot-starter-jdbc</artifactId>

</dependency>


<dependency>

   <groupId>mysql</groupId>

   <artifactId>mysql-connector-java</artifactId>

   <version>8.0.11</version>

</dependency>

```

application.yml


```yaml

server:

 port: 9090

spring:

 thymeleaf:

   prefix: classpath:/templates/

   suffix: .html

   mode: HTML5

   encoding: UTF-8

 datasource:

   url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8

   username: shuang

   password: mysql215311?

   driver-class-name: com.mysql.cj.jdbc.Driver

```

User


```java

package com.shuang.entity;


import lombok.Data;

import org.hibernate.validator.constraints.Length;


import javax.validation.constraints.Min;

import javax.validation.constraints.NotEmpty;

import javax.validation.constraints.NotNull;


@Data

public class User {

   @NotNull(message="id不能为空")

   private Long id;

   @NotEmpty(message="姓名不能为空")

   @Length(min=2,message="姓名长度不能小于2位")

   private String name;

   @Min(value=60,message = "成绩必须大于60")

   private double score;

}

```

UserRepository


```java

package com.shuang.repository;


import com.shuang.entity.User;


import java.util.List;



public interface UserRepository {

   public List<User> findAll();

   public User findById(Long id);

   public void save(User user);

   public void update(User user);

   public void deleteById(Long id);

}

```

UserRepositoryImpl


```java

package com.shuang.repository.impl;


import com.shuang.entity.User;

import com.shuang.repository.UserRepository;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.jdbc.core.BeanPropertyRowMapper;

import org.springframework.jdbc.core.JdbcTemplate;

import org.springframework.stereotype.Repository;


import java.util.List;


@Repository

public class UserRepositoryImpl implements UserRepository {

   @Autowired

   private JdbcTemplate jdbcTemplate;


   @Override

   public List<User> findAll() {

       return jdbcTemplate.query("select * from User",new BeanPropertyRowMapper<>(User.class));

   }


   @Override

   public User findById(Long id)

   {

       return jdbcTemplate.queryForObject("select * from user where id= ?",new Object[]{id},new BeanPropertyRowMapper<>(User.class));

   }



   @Override

   public void save(User user) {

       jdbcTemplate.update("insert into user(name,score) values(?,?)",user.getName(),user.getScore());

   }


   @Override

   public void update(User user) {

       jdbcTemplate.update("update user set name=?,score=? where id=?",user.getName(),user.getScore(),user.getName());

   }


   @Override

   public void deleteById(Long id) {

       jdbcTemplate.update("delete from user where id=?",id);

   }

}

```

Handler


```java

package com.shuang.controller;


import com.shuang.entity.User;

import com.shuang.repository.UserRepository;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.web.bind.annotation.*;


import java.util.List;


@RestController

@RequestMapping("/user")

public class UserHandler {


   @Autowired

   private UserRepository userRepository;




   @GetMapping("/findAll")

   public List<User> findAll(){

       return userRepository.findAll();

   }


   @GetMapping("/findById{id}")

   public User findById(@PathVariable("id") long id){

       return userRepository.findById(id);

   }

   @PostMapping("/save")

   public void save (@RequestBody User user){

       userRepository.save(user);

   }

   @PutMapping("/update")

   public void update(@RequestBody User user){

       userRepository.update(user);


   }

   @DeleteMapping("/deleteById/{id}")

   public void deleteById(@PathVariable("id") long id){

        userRepository.deleteById(id);

   }

}

```


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
NoSQL Java MongoDB
Springboot WebFlux项目结合mongodb进行crud
这篇文章介绍了如何使用Spring Boot WebFlux框架结合MongoDB进行基本的CRUD(创建、读取、更新、删除)操作,包括项目设置、实体类和Repository的创建、控制器的实现以及配置文件的编写。
47 0
Springboot WebFlux项目结合mongodb进行crud
|
2月前
|
Java 关系型数据库 MySQL
创建一个SpringBoot项目,实现简单的CRUD功能和分页查询
【9月更文挑战第6天】该内容介绍如何使用 Spring Boot 实现具备 CRUD 功能及分页查询的项目。首先通过 Spring Initializr 创建项目并选择所需依赖;其次配置数据库连接,并创建实体类与数据访问层;接着构建服务层处理业务逻辑;最后创建控制器处理 HTTP 请求。分页查询可通过添加 URL 参数实现。
|
9天前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
21 2
|
1月前
|
SQL JSON Java
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和PageHelper进行分页操作,并且集成Swagger2来生成API文档,同时定义了统一的数据返回格式和请求模块。
55 1
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
|
2月前
|
Java 数据库连接 数据库
SpringBoot 整合jdbc和mybatis
本文详细介绍了如何在SpringBoot项目中整合JDBC与MyBatis,并提供了具体的配置步骤和示例代码。首先,通过创建用户实体类和数据库表来准备基础环境;接着,配置Maven依赖、数据库连接及属性;最后,分别展示了JDBC与MyBatis的集成方法及其基本操作,包括增删查改等功能的实现。适合初学者快速入门。
SpringBoot 整合jdbc和mybatis
|
1月前
|
SQL Java 数据库
Springboot+spring-boot-starter-data-jdbc实现数据库的操作
本文介绍了如何使用Spring Boot的spring-boot-starter-data-jdbc依赖来操作数据库,包括添加依赖、配置数据库信息和编写基于JdbcTemplate的数据访问代码。
62 2
|
1月前
|
缓存 NoSQL Java
Springboot自定义注解+aop实现redis自动清除缓存功能
通过上述步骤,我们不仅实现了一个高度灵活的缓存管理机制,还保证了代码的整洁与可维护性。自定义注解与AOP的结合,让缓存清除逻辑与业务逻辑分离,便于未来的扩展和修改。这种设计模式非常适合需要频繁更新缓存的应用场景,大大提高了开发效率和系统的响应速度。
63 2
|
2月前
|
SQL JSON Java
springboot 如何编写增删改查后端接口,小白极速入门,附完整代码
本文为Spring Boot增删改查接口的小白入门教程,介绍了项目的构建、配置YML文件、代码编写(包括实体类、Mapper接口、Mapper.xml、Service和Controller)以及使用Postman进行接口测试的方法。同时提供了SQL代码和完整代码的下载链接。
springboot 如何编写增删改查后端接口,小白极速入门,附完整代码
|
1月前
|
前端开发 Java 数据库
springBoot:template engine&自定义一个mvc&后端给前端传数据&增删改查 (三)
本文介绍了如何自定义一个 MVC 框架,包括后端向前端传递数据、前后端代理配置、实现增删改查功能以及分页查询。详细展示了代码示例,从配置文件到控制器、服务层和数据访问层的实现,帮助开发者快速理解和应用。
|
3月前
|
druid Java 数据库连接
SpringBoot项目整合MybatisPlus持久层框架+Druid数据库连接池,以及实现增删改查功能
SpringBoot项目整合MybatisPlus和Druid数据库连接池,实现基本的增删改查功能。
341 0
下一篇
无影云桌面