SpringBoot整合JDBC

Spring Data

对于数据访问层,无论是SQL(关系型数据库)还是NOSQL(非关系型数据库),Spring Boot 底层都是采用Spring Data的方式进行统一处理。

Spring Boot 底层都是采用Spring Data的方式进行统一处理各种数据库,Spring Data也是Spring 中与Spring Boot、Spring Cloud等齐名的知名项目。
Spring Data 官网:https://spring.io/projects/spring-data
数据库相关的启动器:可以参考官方文档:https://docs.spring.io/spring-boot/docs/current/reference/html/using-spring-boot.html#using-boot-starter

JDBC

创建一个项目进行测试:Spring data

环境配置

JDK 1.8
maven 3.6.1
spring Boot 2.4.4
MySQL 5.x

1.创建项目

选择Springboot项目
在这里插入图片描述
项目信息
在这里插入图片描述
选择我们需要的依赖
在这里插入图片描述

2.相关依赖(上一步勾选了就会自动生成 版本不同生产的也不同 不勾选粘贴也可以)

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--JDBC-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <!--MYSQL驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.45</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.junit.vintage</groupId>
                        <artifactId>junit-vintage-engine</artifactId>
                    </exclusion>
                </exclusions>
        </dependency>
    </dependencies>

3.数据库信息(这里连接之前创建的数据库,就不细说了)

数据库名mybatis 表名user 字段如下图
在这里插入图片描在这里插入图片描述述

4.配置application.yml文件

数据库配置
注意:
MySQL5和MySQL8的驱动不一样(5:com.mysql.jdbc.Driver 8:com.mysql.cj.jdbc.Driver
时区MySQL5可以不加(一般不会报错)

spring:
  datasource:
    username: root
    password: x5
    url: jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
    driver-class-name: com.mysql.jdbc.Driver

5.测试一下数据源以及数据库连接

代码在后面
注意:这里可能会出现一下错误(具体问题具体分析)
1.CLIENT_PLUGIN_AUTH is required(驱动版本过高)
2. java.lang.AbstractMethodError: com.mysql.jdbc.Connection.isValid(I)Z(驱动版本过低)
3. The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents mo(时区问题)

在这里插入图片描述

package com.zhao;

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 Springboot04DataApplicationTests {

    @Autowired
    DataSource dataSource;

    @Test
    void contextLoads() throws SQLException {
        //查看一下默认数据源:com.zaxxer.hikari.HikariDataSource
        System.out.println(dataSource.getClass());

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

6.创建JDBCController进行增删改查测试

在controllr层创建JDBCController类
在这里插入图片描述
创建JdbcTemplate对象进行增删改查 Spring boot在这里封装了数据库基本操作。

@RestController
public class JDBCController {
    @Autowired
    JdbcTemplate jdbcTemplate;
}

7.数据查询

查询方法(写到JdbcController中)

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

在这里插入图片描述

8.数据添加

@GetMapping("/addUser")
    public String addUser(){
        String sql ="insert into mybatis.user(id,name,pwd) values (4,'小明','123456')";
        jdbcTemplate.update(sql);
        return "add-ok";
    }

在这里插入图片描述
在这里插入图片描述

9.数据修改

使用Object数组进行 预处理

 @GetMapping("/updateUser/{id}")
    public String updateUser(@PathVariable("id")Integer id){
        String sql ="update mybatis.user set name=?,pwd=?where id="+id;

        Object[] objects = new Object[2];
        objects[0]="小明2";
        objects[1]="abcdef";
        jdbcTemplate.update(sql,objects);
        return "update-ok";
    }

在这里插入图片描述
在这里插入图片描述

10.数据删除

@GetMapping("/deleteUser/{id}")
    public String deleteUser(@PathVariable("id")Integer id){
        String sql ="delete from mybatis.user where id =?";

        jdbcTemplate.update(sql,id);
        return "delete-ok";

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值