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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
云数据库 RDS PostgreSQL,高可用系列 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);

   }

}

```


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
Java 关系型数据库 MySQL
创建一个SpringBoot项目,实现简单的CRUD功能和分页查询
【9月更文挑战第6天】该内容介绍如何使用 Spring Boot 实现具备 CRUD 功能及分页查询的项目。首先通过 Spring Initializr 创建项目并选择所需依赖;其次配置数据库连接,并创建实体类与数据访问层;接着构建服务层处理业务逻辑;最后创建控制器处理 HTTP 请求。分页查询可通过添加 URL 参数实现。
453 7
|
8月前
|
人工智能 自然语言处理 Java
对话即服务:Spring Boot整合MCP让你的CRUD系统秒变AI助手
本文介绍了如何通过Model Context Protocol (MCP) 协议将传统Spring Boot服务改造为支持AI交互的智能系统。MCP作为“万能适配器”,让AI以统一方式与多种服务和数据源交互,降低开发复杂度。文章以图书管理服务为例,详细说明了引入依赖、配置MCP服务器、改造服务方法(注解方式或函数Bean方式)及接口测试的全流程。最终实现用户通过自然语言查询数据库的功能,展示了MCP在简化AI集成、提升系统易用性方面的价值。未来,“对话即服务”有望成为主流开发范式。
6063 7
|
8月前
|
Java 数据库连接
【YashanDB知识库】Springboot启动找不到崖山jdbc驱动的问题处理
本文来自YashanDB官网,主要解决SpringBoot应用启动时出现“找不到崖山JDBC驱动”的问题,尽管lib目录下已有yashandb-jdbc-1.6.9.jar文件。错误信息显示`java.lang.ClassNotFoundException: com.yashandb.jdbc.Driver`。解决方案为:通过`which java`等命令定位Java安装路径,将驱动jar包复制到JRE的`lib/ext`目录下,最后重启应用即可。
|
10月前
|
XML Java 应用服务中间件
Spring Boot 两种部署到服务器的方式
本文介绍了Spring Boot项目的两种部署方式:jar包和war包。Jar包方式使用内置Tomcat,只需配置JDK 1.8及以上环境,通过`nohup java -jar`命令后台运行,并开放服务器端口即可访问。War包则需将项目打包后放入外部Tomcat的webapps目录,修改启动类继承`SpringBootServletInitializer`并调整pom.xml中的打包类型为war,最后启动Tomcat访问应用。两者各有优劣,jar包更简单便捷,而war包适合传统部署场景。需要注意的是,war包部署时,内置Tomcat的端口配置不会生效。
2534 17
Spring Boot 两种部署到服务器的方式
|
8月前
|
Java 数据库 微服务
微服务——SpringBoot使用归纳——Spring Boot中的项目属性配置——指定项目配置文件
在实际项目中,开发环境和生产环境的配置往往不同。为简化配置切换,可通过创建 `application-dev.yml` 和 `application-pro.yml` 分别管理开发与生产环境配置,如设置不同端口(8001/8002)。在 `application.yml` 中使用 `spring.profiles.active` 指定加载的配置文件,实现环境快速切换。本节还介绍了通过配置类读取参数的方法,适用于微服务场景,提升代码可维护性。课程源码可从 [Gitee](https://gitee.com/eson15/springboot_study) 下载。
351 0
|
11月前
|
Java 数据库连接 数据库
springboot java.lang.ClassNotFoundException: dm.jdbc.driver.DmDriver应该如何解决
通过上述步骤,可以有效解决Spring Boot项目中遇到的 `java.lang.ClassNotFoundException: dm.jdbc.driver.DmDriver`问题。确保在项目中正确添加达梦数据库的JDBC驱动依赖,并在配置文件中正确配置数据源信息,是解决此问题的关键。通过这些方法,可以确保Spring Boot项目能够正确连接达梦数据库并正常运行。
2019 31
|
SQL JSON Java
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和PageHelper进行分页操作,并且集成Swagger2来生成API文档,同时定义了统一的数据返回格式和请求模块。
513 1
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
705 2
|
Java 数据库连接 数据库
SpringBoot 整合jdbc和mybatis
本文详细介绍了如何在SpringBoot项目中整合JDBC与MyBatis,并提供了具体的配置步骤和示例代码。首先,通过创建用户实体类和数据库表来准备基础环境;接着,配置Maven依赖、数据库连接及属性;最后,分别展示了JDBC与MyBatis的集成方法及其基本操作,包括增删查改等功能的实现。适合初学者快速入门。
446 3
SpringBoot 整合jdbc和mybatis

热门文章

最新文章