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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 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

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
18天前
|
存储 Oracle 关系型数据库
Oracle数据库的应用场景有哪些?
【10月更文挑战第15天】Oracle数据库的应用场景有哪些?
133 64
|
10天前
|
Java 数据库连接 测试技术
SpringBoot入门(4) - 添加内存数据库H2
SpringBoot入门(4) - 添加内存数据库H2
32 4
SpringBoot入门(4) - 添加内存数据库H2
|
12天前
|
Java 数据库连接 测试技术
SpringBoot入门(4) - 添加内存数据库H2
SpringBoot入门(4) - 添加内存数据库H2
25 2
SpringBoot入门(4) - 添加内存数据库H2
|
5天前
|
Java 数据库连接 测试技术
SpringBoot入门(4) - 添加内存数据库H2
SpringBoot入门(4) - 添加内存数据库H2
40 13
|
7天前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
20 3
|
7天前
|
存储 Java 关系型数据库
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接创建、分配、复用和释放等操作,并通过电商应用实例展示了如何选择合适的连接池库(如HikariCP)和配置参数,实现高效、稳定的数据库连接管理。
20 2
|
14天前
|
SQL Java 数据库
Spring Boot与Flyway:数据库版本控制的自动化实践
【10月更文挑战第19天】 在软件开发中,数据库的版本控制是一个至关重要的环节,它确保了数据库结构的一致性和项目的顺利迭代。Spring Boot结合Flyway提供了一种自动化的数据库版本控制解决方案,极大地简化了数据库迁移管理。本文将详细介绍如何使用Spring Boot和Flyway实现数据库版本的自动化控制。
14 2
|
16天前
|
XML 存储 数据库
XML在数据库中有哪些应用?
【10月更文挑战第17天】XML在数据库中有哪些应用?
18 2
|
18天前
|
供应链 数据库
数据库事务安全性控制有什么应用场景吗
【10月更文挑战第15天】数据库事务安全性控制有什么应用场景吗
|
1天前
|
存储 安全 Java
springboot当中ConfigurationProperties注解作用跟数据库存入有啥区别
`@ConfigurationProperties`注解和数据库存储配置信息各有优劣,适用于不同的应用场景。`@ConfigurationProperties`提供了类型安全和模块化的配置管理方式,适合静态和简单配置。而数据库存储配置信息提供了动态更新和集中管理的能力,适合需要频繁变化和集中管理的配置需求。在实际项目中,可以根据具体需求选择合适的配置管理方式,或者结合使用这两种方式,实现灵活高效的配置管理。
6 0