SpringBoot(八)之JdbcTemplate

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用版 2核4GB 50GB
简介: 在 application.properties 或 application.yml 文件中配置数据库连接信息。

spring-boot-starter-jdbc 是 Spring Boot 提供的一个用于简化 JDBC 操作的启动器。使用这个启动器,你可以快速配置和使用 JDBC 进行数据库操作。以下是一个详细指南,介绍如何在 Spring Boot 项目中使用 spring-boot-starter-jdbc。


1.添加依赖项:

在 pom.xml(如果使用 Maven)中添加以下依赖项:


<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>
</dependencies>

2. 配置数据库连接


application.propertiesapplication.yml 文件中配置数据库连接信息。以下是 application.properties 的示例配置(以 MySQL 为例):

spring:
  datasource:
    username: root
    password: root
    url: jdbc:mysql://192.168.56.102:3306/boot-test?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC
    driver-class-name: com.mysql.cj.jdbc.Driver

3.创建表信息

CREATE TABLE `sys_user` (
  `id` int NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `age` int DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

4. 创建数据模型

定义你的实体类。例如,一个简单的用户实体类 SysUser

public class SysUser {
    private Integer id;

    private String name;

    private int age;

    // Getters and setters
}

5. 创建 Repository

使用 JdbcTemplate 进行数据库操作。首先,创建一个 UserRepository 类:

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public class SysUserRepository {

    private final JdbcTemplate jdbcTemplate;

    @Autowired
    public SysUserRepository(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }

    private final RowMapper<SysUser> rowMapper = (rs, rowNum) -> {
        SysUser user = new SysUser();
        user.setId(rs.getInt("id"));
        user.setName(rs.getString("name"));
        user.setAge(rs.getInt("age"));
        return user;
    };

    public List<SysUser> findAll(){
        return jdbcTemplate.query("SELECT * FROM SYS_USER",rowMapper);
    }

    public int save(SysUser user){
        return jdbcTemplate.update("INSERT INTO SYS_USER (name, age) VALUES (?, ?)",user.getName(),user.getAge());
    }
    
    //其他增删改查信息

}

6.测试,创建TestController

@RestController
public class TestController {


    private final SysUserRepository sysUserRepository;

    @Autowired
    public TestController(SysUserRepository sysUserRepository) {
        this.sysUserRepository = sysUserRepository;
    }

    @GetMapping("/getUsers")
    public List<SysUser> getAllUser(){
        return sysUserRepository.findAll();
    }
    
    @GetMapping("/addUser")
    public int addUser(@RequestParam("name") String name,
                       @RequestParam("age") int age){
        SysUser sysUser = new SysUser();
        sysUser.setName(name);
        sysUser.setAge(age);
        return sysUserRepository.save(sysUser);
    }
}

启动项目,访问 http://localhost:8080/addUser?name=zhangsan&age=22,http://localhost:8080/addUser?name=lisi&age=25新增zhangsan和lisi两个用户


再次访问http://localhost:8080/getUsers,观察返回


[
    {
        "id": 1,
        "name": "zhangsan",
        "age": 22
    },
    {
        "id": 2,
        "name": "lisi",
        "age": 25
    }
]

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
SQL Java 关系型数据库
SpringBoot从入门到精通(三十)如何使用JdbcTemplate操作数据库?
前面介绍了Mybatis数据持久化框架,Mybatis虽然功能强大,但是,使用起来还是比较复杂的。所以接下来介绍一个简单的数据持久化框架——JdbcTemplate。
SpringBoot从入门到精通(三十)如何使用JdbcTemplate操作数据库?
|
11月前
|
Java 数据库连接 数据库
SpringBoot整合持久层技术之搭建JDBCTemplate项目实战
现在有了MyBatis之后很少人使用JDBCTemplate来整合项目了,要么就是JPA技术,要么就是Mybatis来操作数据库,今天我搭建一个springboot的template项目,看看其和JPA、Mybatis有什么不同的地方,方便大家一起学习。
51 0
|
2月前
|
Java 关系型数据库 MySQL
Spring Boot使用JdbcTemplate操作mysql数据库实战(附源码 超详细)
Spring Boot使用JdbcTemplate操作mysql数据库实战(附源码 超详细)
59 0
|
8月前
|
Java 数据库连接 测试技术
微服务技术系列教程(03) - SpringBoot - 整合各种数据源(JdbcTemplate、MyBatis、JPA)
微服务技术系列教程(03) - SpringBoot - 整合各种数据源(JdbcTemplate、MyBatis、JPA)
39 0
|
11月前
|
Oracle NoSQL 关系型数据库
SpringBoot-13-使用JdbcTemplate链接Mysql数据库
在企业项目开发者,数据库的使用是必不可少的一部分,常用的数据库有mysql、oracle、sqlserver、redis等,我们接下来的几章会介绍SpringBoot中如何使用数据库,本章就介绍使用JdbcTemplate链接mysql。
93 0
|
XML Java 关系型数据库
SpringBoot 整合 JdbcTemplate|学习笔记
快速学习 SpringBoot 整合 JdbcTemplate
82 0
SpringBoot 整合 JdbcTemplate|学习笔记
|
Java 关系型数据库 MySQL
SpringBoot整合JdbcTemplate连接Mysql
SpringBoot整合JdbcTemplate连接Mysql
140 0
|
SQL Java
SpringBoot高级篇JdbcTemplate之数据更新与删除
前面介绍了JdbcTemplate的插入数据和查询数据,占用CURD中的两项,本文则将主要介绍数据更新和删除。从基本使用上来看,姿势和前面的没啥两样
827 0
SpringBoot高级篇JdbcTemplate之数据更新与删除
|
Java 关系型数据库 MySQL
springboot学习-使用JdbcTemplate操作MySQL数据库
springboot学习-使用JdbcTemplate操作MySQL数据库
251 0
springboot学习-使用JdbcTemplate操作MySQL数据库
|
druid Oracle 架构师
SpringBoot从小白到精通(十四)使用JdbcTemplate操作数据库,配置多数据源!
Spring Boot 除了Mybatis数据库框架,还有JdbcTemplate等数据库操作框架,同样也比较简单实用,如果是一般简单的项目,用JdbcTemplate完全可以实现相关的数据库操作。它虽然没有MyBatis功能强大,但使用比较简单,JdbcTemplate应该算是最简单的数据持久化方案,所以下面就来给大家介绍Spring Boot 使用JdbcTemplate操作数据库,配置多数据源!
SpringBoot从小白到精通(十四)使用JdbcTemplate操作数据库,配置多数据源!