Spring-Jdbc

Spring JDBC 的全面教程

1、概览 本文将带你全面了解 Spring JDBC 模块。 Spring JDBC 中的所有类都分为四个独立的包: core — JDBC 的核心功能。该软件包下的一些重要类包括 JdbcTemplate、SimpleJdbcInsert、SimpleJdbcCall 和 NamedParameterJdbcTemplate。 datasource — 用于访问数据源的工具类。它还有各种数据源实现,用于在 Jakarta EE 容器外测试 JDBC 代码。 object — 以面向对象的方式访问数据库。它允许运行查询并将结果作为业务对象返回。它还能在业务对象的列和属性之间映射查询结果。 support — core 包和 object 包下的类的支持类,例如提供 SQLException 翻译功能。 2、Maven 依赖 在 pom.xml 中添加 spring-boot-starter-jdbc 和 mysql-connector-j: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> <version>3.3.5</version> </dependency> <dependency> <groupId>com.mysql</groupId> <artifactId>mysql-connector-j</artifactId> <version>9.1.0</version> </dependency> 然后,在 pom.xml 中添加 h2 依赖: <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>2.3.232</version> <scope>test</scope> </dependency> H2 数据库是一个嵌入式数据库,可用于快速原型开发。 3、配置 在 Spring 中配置数据源有两种主要方法:使用 properties 文件或使用基于 Java 的配置。

JdbcTemplate 获取自增ID

JdbcTemplate 是由 spring-jdbc 提供的一个 JDBC 工具类模块,可以快速地对数据库进行 CURD 操作。 本文将会教你如何在使用 JdbcTemplate 执行 INSERT 操作时获取到自增ID。 项目设置 创建任意 spring boot 项目。添加 mysql-connector-j 以及 spring-boot-starter-jdbc 依赖。 你可以通过 start.springboot.io 快速创建此示例项目。 <dependency> <groupId>com.mysql</groupId> <artifactId>mysql-connector-j</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> 配置数据源 在 application.yaml 中配置基础的数据源信息。 spring: datasource: type: com.zaxxer.hikari.HikariDataSource driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowMultiQueries=true username: root password: root 配置 JdbcTemplate 通过配置类,注册 JdbcTemplate Bean。 import javax.sql.DataSource; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.jdbc.core.JdbcTemplate; @Configuration public class JdbcTemplateConfiguration { @Bean public JdbcTemplate jdbcTemplate (DataSource dataSource) { return new JdbcTemplate(dataSource); } } 创建示例表 CREATE TABLE `users` ( `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID', `account` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '账户', `create_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户名称', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='系统用户'; 其中 id 字段是自增的。