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

简介: 《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

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
2月前
|
存储 人工智能 NoSQL
AI大模型应用实践 八:如何通过RAG数据库实现大模型的私有化定制与优化
RAG技术通过融合外部知识库与大模型,实现知识动态更新与私有化定制,解决大模型知识固化、幻觉及数据安全难题。本文详解RAG原理、数据库选型(向量库、图库、知识图谱、混合架构)及应用场景,助力企业高效构建安全、可解释的智能系统。
|
5月前
|
存储 关系型数据库 数据库
附部署代码|云数据库RDS 全托管 Supabase服务:小白轻松搞定开发AI应用
本文通过一个 Agentic RAG 应用的完整构建流程,展示了如何借助 RDS Supabase 快速搭建具备知识处理与智能决策能力的 AI 应用,展示从数据准备到应用部署的全流程,相较于传统开发模式效率大幅提升。
附部署代码|云数据库RDS 全托管 Supabase服务:小白轻松搞定开发AI应用
|
6月前
|
安全 druid Nacos
0 代码改造实现应用运行时数据库密码无损轮转
本文探讨了敏感数据的安全风险及降低账密泄漏风险的策略。国家颁布的《网络安全二级等保2.0标准》强调了企业数据安全的重要性。文章介绍了Nacos作为配置中心在提升数据库访问安全性方面的应用,并结合阿里云KMS、Druid连接池和Spring Cloud Alibaba社区推出的数据源动态轮转方案。该方案实现了加密配置统一托管、帐密全托管、双层权限管控等功能,将帐密切换时间从数小时优化到一秒,显著提升了安全性和效率。未来,MSE Nacos和KMS将扩展至更多组件如NoSQL、MQ等,提供一站式安全服务,助力AI时代的应用安全。
396 14
|
3月前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
605 5
|
3月前
|
存储 弹性计算 Cloud Native
云原生数据库的演进与应用实践
随着企业业务扩展,传统数据库难以应对高并发与弹性需求。云原生数据库应运而生,具备计算存储分离、弹性伸缩、高可用等核心特性,广泛应用于电商、金融、物联网等场景。阿里云PolarDB、Lindorm等产品已形成完善生态,助力企业高效处理数据。未来,AI驱动、Serverless与多云兼容将推动其进一步发展。
204 8
|
3月前
|
存储 弹性计算 安全
现有数据库系统中应用加密技术的不同之处
本文介绍了数据库加密技术的种类及其在不同应用场景下的安全防护能力,包括云盘加密、透明数据加密(TDE)和选择列加密。分析了数据库面临的安全威胁,如管理员攻击、网络监听、绕过数据库访问等,并通过能力矩阵对比了各类加密技术的安全防护范围、加密粒度、业务影响及性能损耗。帮助用户根据安全需求、业务改造成本和性能要求,选择合适的加密方案,保障数据存储与传输安全。
|
5月前
|
安全 Java Nacos
0代码改动实现Spring应用数据库帐密自动轮转
Nacos作为国内被广泛使用的配置中心,已经成为应用侧的基础设施产品,近年来安全问题被更多关注,这是中国国内软件行业逐渐迈向成熟的标志,也是必经之路,Nacos提供配置加密存储-运行时轮转的核心安全能力,将在应用安全领域承担更多职责。
|
4月前
|
存储 人工智能 数据库
视图是什么?为什么要用视图呢?数据库视图:定义、特点与应用
本文三桥君深入探讨数据库视图的概念与应用,从定义特点到实际价值全面解析。视图作为虚拟表具备动态更新、简化查询、数据安全等优势,能实现多角度数据展示并保持数据库重构的灵活性。产品专家三桥君还分析了视图与基表关系、创建维护要点及性能影响,强调视图是提升数据库管理效率的重要工具。三桥君通过系统讲解,帮助读者掌握这一常被忽视却功能强大的数据库特性。
1146 0
|
6月前
|
SQL 数据库
软考软件评测师——数据库系统应用
本文介绍了关系数据库的基础知识与应用,涵盖候选码定义、自然连接特点、实体间关系(如1:n和m:n)、属性分类(复合、多值与派生属性)以及数据库设计规范。同时详细解析了E-R图转换原则、范式应用(如4NF)及Armstrong公理体系。通过历年真题分析,结合具体场景(如银行信用卡额度、教学管理等),深入探讨了候选键求解、视图操作规范及SQL语句编写技巧。内容旨在帮助读者全面掌握关系数据库理论与实践技能。