首页 > 其他分享 >SpringBoot整合JDBC详解

SpringBoot整合JDBC详解

时间:2023-02-04 17:00:12浏览次数:47  
标签:JDBC SpringBoot org springframework 详解 user sql import com

SpringBoot整合JDBC

SpringBoot整合JDBC详解_spring

@​​TOC​​


前言

对于数据访问层,无论是关系型数据库(SQL)还是NOSQL(非关系型数据库),SpringBoot的底层都是采用SpringData的方式来进行统一处理。SpringData其实是一个用于简化数据库访问,并支持云服务的开源框架。其主要目标是使得对数据的访问变得方便快捷。

下面我们通过一个简单的数据库访问例子来了解一下​​Spring Boot整合JDBC​

Spring Boot整合JDBC

版本:
mysql8.0,springboot:2.7.8-SNAPSHOT

准备测试数据

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` bigint NOT NULL COMMENT '主键ID',
`name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '姓名',
`age` int NULL DEFAULT NULL COMMENT '年龄',
`email` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES (2, 'Jack', 20, '[email protected]');
INSERT INTO `user` VALUES (3, 'Tom', 28, '[email protected]');
INSERT INTO `user` VALUES (4, 'yc', 0, '[email protected]');
INSERT INTO `user` VALUES (5, 'Billie', 24, '[email protected]');

SET FOREIGN_KEY_CHECKS = 1;

创建项目导入依赖

<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>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>

导入jdbc,和mysql依赖

配置文件

由于我的库名为:mybatis_plus,且是mysql8.0

spring:
datasource:
username: root
password: qwer123.
url: jdbc:mysql://127.0.0.1:3306/mybatis_plus?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false&serverTimezone=UTC
driver-class-name: com.mysql.cj.jdbc.Driver

测试连接

SpringBoot整合JDBC详解_spring_02


SpringBoot整合JDBC详解_bc_03

配置文件里的信息自动装配

SpringBoot整合JDBC详解_bc_04

package com.example.springboot_jdbc;

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;

@SpringBootTest
class SpringbootJdbcApplicationTests {
@Autowired
DataSource dataSource;
@Test
void contextLoads() throws SQLException {
//查看默认数据源
System.out.println(dataSource.getClass());

//获取数据库连接
Connection connection = dataSource.getConnection();
System.out.println(connection);

//关闭
connection.close();
}
}

crud的使用

编写JdbcController类

package com.example.springboot_jdbc.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
import java.util.Map;

/**
* @Author 秋名山码神
* @Date 2023/1/11
* @Description
*/
@RestController
public class JdbcController {
@Autowired
JdbcTemplate jdbcTemplate;

//查询数据库的所有信息
//没有实体类,数据库中的东西,怎么获取
@GetMapping("/userlist")
public List<Map<String, Object>> userList(){
String sql = "select * from user";
List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql);
return maps;
}

@GetMapping("/addUser")
public String addUser(){
String sql = "INSERT into `user` VALUES (19,'yss',50,'sdfa')";
jdbcTemplate.update(sql);
return "update-ok";
}
@GetMapping("/updateUser")
public String updateUser(){
String sql = "update `uesr` set name = ww where id = 1";
jdbcTemplate.update(sql);
return "update-ok";
}

@GetMapping("/deleteUser")
public String deleteUser(){
String sql = "delete from user where id = 1 ;";
jdbcTemplate.update(sql);
return "update-ok";
}
}

至此,我们关于springboot整合JDBC的使用就到此为止了

标签:JDBC,SpringBoot,org,springframework,详解,user,sql,import,com
From: https://blog.51cto.com/u_15558498/6037212

相关文章

  • Python中strip()、lstrip()、rstrip()用法详解
    Python中有三个去除头尾字符、空白符的函数,它们依次为:strip:用来去除头尾字符、空白符(包括\n、\r、\t、'',即:换行、回车、制表符、空格)lstrip:用来去除开头字符、......
  • springboot读取docker容器系统环境变量,在alpine和debian版本的差异
    执行dockerrun--rm-e"a.a=c"-e"cc=ccs"-italpine:3.16sh,进入容器后,执行env,查看到的环境变量有cc,a.a执行dockerrun--rm-e"a.a=c"-e"cc=ccs"-itdebian......
  • SpringBoot 场景开发多面手成长手册 小册笔记
    整合RocketMQ在开始运行RocketMQ之前,我们先思考一个实际的场景。假设我们项目中有一个消息的生产者和消费者,它们连接到一个RocketMQ实例上,如下图所示。随着业务规......
  • Linux日志文件/var/log详解
    如果愿意在Linux环境方面花费些时间,首先就应该知道日志文件的所在位置以及它们包含的内容。在系统运行正常的情况下学习了解这些不同的日志文件有助于你在遇到紧急情况时从......
  • 【云原生kubernetes】k8s控制器Deployment使用详解
    前言在上一篇我们聊了k8s中各种控制器的使用,本篇将以控制器中比较常用的一种控制器Deployment进行详细的说明。一、Deployment简介 为了更好解决服务编排的问题,kubernete......
  • D触发器 (D-FF)详解
    ⭐本专栏针对FPGA进行入门学习,从数电中常见的逻辑代数讲起,结合VerilogHDL语言学习与仿真,主要对组合逻辑电路与时序逻辑电路进行分析与设计,对状态机FSM进行剖析与建模。......
  • 排列组合详解
    一、引入排列组合是组合数学的基础,主要是研究各种排列和组合的情况数。1.加法原理在同一步中,有不同类别的选择,可以将各类选择方案数累加获得总方案数。举例说明,比如从......
  • 创建springboot项目
    有两种方式1.maven创建2.忘了今天采用maven创建       2.在pom.xml里面添加依赖3. 在resources下创建配置文件application.yam 4.Main就是启动......
  • Failed to load driver class com.mysql.cj.jdbc.Driver in either of HikariConfig c
    使用SpringDataJPA访问数据时出现该错误,具体报错信息如下:ErrorstartingApplicationContext.Todisplaytheconditionsreportre-runyourapplicationwith'debug......
  • springboot2.5.6集成swagger3
    引入依赖<dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3......