SpringBoot基础系列学习(五):JdbcTemplate 访问数据库

文章目录

一丶介绍

Spring Boot作为Spring的集大成者,自然会将JdbcTemplate集成进去。Spring Boot针对JDBC的使用提供了对应的Starter包:spring-boot-starter-jdbc,它其实就是在Spring JDBC上做了进一步的封装,方便在 Spring Boot 项目中更好地使用JDBC。

  1. JdbcTemplate的特点

    速度快,相对于ORM框架,JDBC的方式是最快的。

    配置简单,Spring封装的,除了数据库连接之外,几乎没有额外的配置。

    使用方便,就像DBUtils工具类,只需注入JdbcTemplate对象即可。

  2. JdbcTemplate的几种类型的方法

    JdbcTemplate虽然简单,功能却非常强大。它提供了非常丰富、实用的方法,归纳起来主要有以下几种类型的方法:

    • execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句。
    • update、batchUpdate方法:用于执行新增、修改与删除等语句。
    • query和queryForXXX方法:用于执行查询相关的语句。
    • call方法:用于执行数据库存储过程和函数相关的语句。

总的来说,新增、删除与修改三种类型的操作主要使用update和batchUpdate方法来完成。query和queryForObject方法中主要用来完成查询功能。execute方法可以用来执行任意的SQL、call方法来调用存储过程。

二丶引入依赖

java 复制代码
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- MYSQL包 -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- 默认就内嵌了Tomcat 容器,如需要更换容器也极其简单-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

三丶配置配置文件

java 复制代码
spring:
  datasource:
    driver-class-name:
      com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/springbootStudy?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false
    username: root
    password: root

小知识:mysql5和8的驱动不一样,可自行搜索

四丶创建表

CREATE TABLE user (
id bigint 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;

五丶java代码

java 复制代码
import lombok.extern.slf4j.Slf4j;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

/**
 * @author Administrator
 */
@RestController
@Slf4j
public class JdbcTemplateController {
    @Resource
    JdbcTemplate jdbcTemplate;
    @GetMapping("/count")
    public void count(){
        Long l = jdbcTemplate.queryForObject("select count(id) from user", Long.class);
        log.info("user表中有"+l+"条数据");
    }
    @GetMapping("/save")
    public void save(){
        int i = jdbcTemplate.update("insert into user(name,age)value (?,?)", "白菜治2",22);
        log.info("user表新增了"+i+"条数据");
    }
}
相关推荐
白帽小丑6 小时前
# 一次 MySQL DELETE 误操作的数据恢复尝试实录
数据库·mysql
Quincy_Freak8 小时前
信创内网数据规范实践:银河麒麟下SQLite本地数据安全管理方案
数据库·sqlite·arm·数据库管理·大数据分析·银河麒麟·aarch64
2601_9626838910 小时前
治理遗留系统中的“生肉 SQL”:一次用多模型协作优化慢查询的实战复盘
数据库·人工智能·sql
酱学编程11 小时前
【从零到一实现一个 AI Agent 框架 · 第四篇】04. 任务规划:拆解复杂目标 -
服务器·网络·数据库·人工智能
shushangyun_12 小时前
2026智能采购商城系统选型指南:如何引领企业数字化采购升级
java·大数据·数据库·人工智能·机器学习
华山令狐虫13 小时前
DBAPI AI 写 SQL:支持动态 SQL 与参数占位符,自然语言一键生成
数据库·人工智能·sql·dbapi
IvorySQL13 小时前
PG 技术日报|2026-07-04
数据库·人工智能·postgresql·开源
Hoxy.R13 小时前
KingbaseES读写分离高可用集群扩容、备库重建与故障切换实战
运维·数据库
IvorySQL14 小时前
IvorySQL HTAP 实时湖仓接入引擎
数据库·postgresql·开源·htap·ivorysql
忧郁的紫菜14 小时前
WCF+JSON+实体对象与WebService+DataSet效率大比拼
数据库·oracle·json