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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
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
目录
相关文章
|
2月前
|
存储 Java Maven
Spring Boot WebFlux 增删改查完整实战 demo
Spring Boot WebFlux 增删改查完整实战 demo
|
1天前
|
SQL XML Java
Spring5入门到实战------12、使用JdbcTemplate操作数据库(增删改查)。具体代码+讲解 【上篇】
这篇文章是Spring5框架的实战教程,详细讲解了如何使用JdbcTemplate进行数据库的增删改查操作,包括在项目中引入依赖、配置数据库连接池、创建实体类、定义DAO接口及其实现,并提供了具体的代码示例和测试结果,最后还提供了完整的XML配置文件和测试代码。
Spring5入门到实战------12、使用JdbcTemplate操作数据库(增删改查)。具体代码+讲解 【上篇】
|
4天前
|
XML 数据库 数据格式
Spring5入门到实战------14、完全注解开发形式 ----JdbcTemplate操作数据库(增删改查、批量增删改)。具体代码+讲解 【终结篇】
这篇文章是Spring5框架的实战教程的终结篇,介绍了如何使用注解而非XML配置文件来实现JdbcTemplate的数据库操作,包括增删改查和批量操作,通过创建配置类来注入数据库连接池和JdbcTemplate对象,并展示了完全注解开发形式的项目结构和代码实现。
Spring5入门到实战------14、完全注解开发形式 ----JdbcTemplate操作数据库(增删改查、批量增删改)。具体代码+讲解 【终结篇】
|
4天前
|
SQL XML Java
Spring5入门到实战------12、使用JdbcTemplate操作数据库(增删改查)。具体代码+讲解 【上篇】
这篇文章是Spring5框架的实战教程,详细讲解了如何使用JdbcTemplate进行数据库的增删改查操作,包括在项目中引入依赖、配置数据库连接池、创建实体类、定义DAO接口及其实现,并提供了具体的代码示例和测试结果,最后还提供了完整的XML配置文件和测试代码。
Spring5入门到实战------12、使用JdbcTemplate操作数据库(增删改查)。具体代码+讲解 【上篇】
|
2月前
|
运维 Java 关系型数据库
Spring运维之boot项目bean属性的绑定读取与校验
Spring运维之boot项目bean属性的绑定读取与校验
36 2
|
2月前
|
存储 运维 Java
Spring运维之boot项目开发关键之日志操作以及用文件记录日志
Spring运维之boot项目开发关键之日志操作以及用文件记录日志
40 2
|
2月前
|
Java Maven
springboot项目打jar包后,如何部署到服务器
springboot项目打jar包后,如何部署到服务器
142 1
|
2月前
|
XML 运维 Java
Spring运维之boot项目打包jar和插件运行并且设置启动时临时属性和自定义配置文件
Spring运维之boot项目打包jar和插件运行并且设置启动时临时属性和自定义配置文件
33 1
|
2月前
|
Java 数据库连接 数据库
Spring日志完结篇,MyBatis操作数据库(入门)
Spring日志完结篇,MyBatis操作数据库(入门)
|
2月前
|
SQL Java 数据库连接
Spring5系列学习文章分享---第四篇(JdbcTemplate+概念配置+增删改查数据+批量操作 )
Spring5系列学习文章分享---第四篇(JdbcTemplate+概念配置+增删改查数据+批量操作 )
24 0