《springboot实战》第七章 springboot 数据库应用

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 《springboot实战》第七章 springboot 数据库应用

以spring-boot-starter-data-jdbc加载连接MySQL数据库

1、添加依赖

在pom.xml里面导入数据库操作依赖和数据驱动

<!--导入数据库操作依赖-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>
<!--导入数据驱动-->
<dependency>
     <groupId>com.mysql</groupId>
     <artifactId>mysql-connector-j</artifactId>
     <scope>runtime</scope>
     <version>8.0.30</version>
 </dependency>

2、配置数据源

在application.yaml文件里加入数据源连接信息

#数据源连接信息
spring:
  datasource:
    username: root
    password: root
    url: jdbc:mysql://127.0.0.1:3306/springdev
    driver-class-name: com.mysql.cj.jdbc.Driver

3、JdbcTemplate应用

3.1、JdbcTemplate提供的方法

3.1.1、execute方法

可以用于执行任何SQL语句,一般用于执行DDL语句

3.1.2、update方法和batchUpdate方法

update方法用于执行新增、修改、删除等语句;batchUpdate方法用于执行批量处理相关语句。

3.1.3、query方法及queryForXXX方法

用于执行查询相关语句。

3.1.4、call方法

用于执行存储过程、函数相关语句。

3.2、从数据库中读取数据到实体对象

3.2.1、定义TUser实体类

import lombok.Data;
@Data
public class TUser {
    private int id;
    private String user_name;
    private String pwd;
}

3.2.2、读取单个对象

import com.hqyj.springboot.entity.TUser;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
@Slf4j
@SpringBootTest
class UserTests {
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Test
    void selectOne() {
        String sql="select id,user_name,pwd from t_user where id=666";
        RowMapper<TUser> rowMapper=new BeanPropertyRowMapper<TUser>(TUser.class);
        TUser user= jdbcTemplate.queryForObject(sql, rowMapper);
        log.info("Hello {}" , user);
    }
}

输出:

2023-04-04 18:01:07.095 INFO 8556 — [ main]

com.hqyj.springboot.UserTests : Hello TUser(id=666,

user_name=lisi, pwd=123)

3.3、增加数据

@Test
    void insertOne() {
        String sql="insert into t_user (user_name,pwd) values (?,?)";
        int count= jdbcTemplate.update(sql, new Object[]{"小明","q123456"});
        log.info("count {}" , count);
    }

输出:

2023-04-04 18:07:49.285 INFO 1020 — [ main]

com.hqyj.springboot.UserTests : count 1

3.4、删除数据

@Test
    void delete() {
        String sql="delete from t_user where id=?";
        int count=  jdbcTemplate.update(sql,667);
        log.info("count {}" , count);
    }

输出:

2023-04-04 18:07:49.285 INFO 1020 — [ main]

com.hqyj.springboot.UserTests : count 1

3.5、修改数据

@Test
    void update() {
        String sql="update t_user set user_name=?,pwd=? where id=?";
        int count= jdbcTemplate.update(sql,new Object[]{"小王","q12345",667});
        log.info("count {}" , count);
    }

输出:

2023-04-04 18:12:56.192 INFO 15236 — [ main]

com.hqyj.springboot.UserTests : count 1

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
Java 数据库连接 测试技术
SpringBoot入门 - 添加内存数据库H2
SpringBoot入门 - 添加内存数据库H2
48 3
SpringBoot入门 - 添加内存数据库H2
|
3天前
|
人工智能 容灾 关系型数据库
【AI应用启航workshop】构建高可用数据库、拥抱AI智能问数
12月25日(周三)14:00-16:30参与线上闭门会,阿里云诚邀您一同开启AI应用实践之旅!
|
1月前
|
架构师 数据库
大厂面试高频:数据库乐观锁的实现原理、以及应用场景
数据库乐观锁是必知必会的技术栈,也是大厂面试高频,十分重要,本文解析数据库乐观锁。关注【mikechen的互联网架构】,10年+BAT架构经验分享。
大厂面试高频:数据库乐观锁的实现原理、以及应用场景
|
27天前
|
Java 关系型数据库 数据库连接
使用 Spring Boot 执行数据库操作:全面指南
使用 Spring Boot 执行数据库操作:全面指南
101 1
|
1月前
|
Java 数据库连接 测试技术
SpringBoot入门(4) - 添加内存数据库H2
SpringBoot入门(4) - 添加内存数据库H2
70 13
|
1月前
|
Java 数据库连接 测试技术
SpringBoot入门(4) - 添加内存数据库H2
SpringBoot入门(4) - 添加内存数据库H2
51 4
|
1月前
|
缓存 NoSQL 数据库
运用云数据库 Tair 构建缓存为应用提速,完成任务得苹果音响、充电套装等好礼!
本活动将带大家了解云数据库 Tair(兼容 Redis),通过体验构建缓存以提速应用,完成任务,即可领取罗马仕安卓充电套装,限量1000个,先到先得。邀请好友共同参与活动,还可赢取苹果 HomePod mini、小米蓝牙耳机等精美好礼!
|
1月前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
55 3
|
1月前
|
存储 Java 关系型数据库
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接创建、分配、复用和释放等操作,并通过电商应用实例展示了如何选择合适的连接池库(如HikariCP)和配置参数,实现高效、稳定的数据库连接管理。
67 2
|
1月前
|
存储 安全 Java
springboot当中ConfigurationProperties注解作用跟数据库存入有啥区别
`@ConfigurationProperties`注解和数据库存储配置信息各有优劣,适用于不同的应用场景。`@ConfigurationProperties`提供了类型安全和模块化的配置管理方式,适合静态和简单配置。而数据库存储配置信息提供了动态更新和集中管理的能力,适合需要频繁变化和集中管理的配置需求。在实际项目中,可以根据具体需求选择合适的配置管理方式,或者结合使用这两种方式,实现灵活高效的配置管理。
25 0