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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 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
目录
相关文章
|
3月前
|
存储 Java Maven
Spring Boot WebFlux 增删改查完整实战 demo
Spring Boot WebFlux 增删改查完整实战 demo
|
4月前
|
Java 关系型数据库 数据库连接
实时计算 Flink版操作报错之在使用JDBC连接MySQL数据库时遇到报错,识别不到jdbc了,怎么解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
1月前
|
XML 数据库 数据格式
Spring5入门到实战------14、完全注解开发形式 ----JdbcTemplate操作数据库(增删改查、批量增删改)。具体代码+讲解 【终结篇】
这篇文章是Spring5框架的实战教程的终结篇,介绍了如何使用注解而非XML配置文件来实现JdbcTemplate的数据库操作,包括增删改查和批量操作,通过创建配置类来注入数据库连接池和JdbcTemplate对象,并展示了完全注解开发形式的项目结构和代码实现。
Spring5入门到实战------14、完全注解开发形式 ----JdbcTemplate操作数据库(增删改查、批量增删改)。具体代码+讲解 【终结篇】
|
1月前
|
SQL XML Java
Spring5入门到实战------12、使用JdbcTemplate操作数据库(增删改查)。具体代码+讲解 【上篇】
这篇文章是Spring5框架的实战教程,详细讲解了如何使用JdbcTemplate进行数据库的增删改查操作,包括在项目中引入依赖、配置数据库连接池、创建实体类、定义DAO接口及其实现,并提供了具体的代码示例和测试结果,最后还提供了完整的XML配置文件和测试代码。
Spring5入门到实战------12、使用JdbcTemplate操作数据库(增删改查)。具体代码+讲解 【上篇】
|
1月前
|
druid Java 数据库连接
SpringBoot项目整合MybatisPlus持久层框架+Druid数据库连接池,以及实现增删改查功能
SpringBoot项目整合MybatisPlus和Druid数据库连接池,实现基本的增删改查功能。
158 0
|
3月前
|
存储 运维 Java
Spring运维之boot项目开发关键之日志操作以及用文件记录日志
Spring运维之boot项目开发关键之日志操作以及用文件记录日志
51 2
|
3月前
|
SQL Java 数据库连接
2万字实操案例之在Springboot框架下基于注解用Mybatis开发实现基础操作MySQL之预编译SQL主键返回增删改查
2万字实操案例之在Springboot框架下基于注解用Mybatis开发实现基础操作MySQL之预编译SQL主键返回增删改查
56 2
|
3月前
|
Java 数据库连接 数据库
Spring日志完结篇,MyBatis操作数据库(入门)
Spring日志完结篇,MyBatis操作数据库(入门)
|
3月前
|
SQL Java 数据库连接
Spring5系列学习文章分享---第四篇(JdbcTemplate+概念配置+增删改查数据+批量操作 )
Spring5系列学习文章分享---第四篇(JdbcTemplate+概念配置+增删改查数据+批量操作 )
25 0
|
3月前
|
SQL Java 数据库连接
使用Python通过JDBC操作数据库(达梦数据库)
使用Python通过JDBC操作数据库(达梦数据库)
365 0