Spring boot整合使用JDBC连接MySQL数据库

Spring boot整合使用JDBC连接MySQL数据库

    • Spring boot整合使用JDBC连接MySQL数据库
      • 说明
      • JDBC是什么
      • 项目搭建
        • 引入相关依赖
        • 添加数据库配置文件和其他参数
      • 新建测试类
      • 执行结果
        • 接口请求
        • 打印结果
      • 相关资料
        • 数据库表信息

Spring boot整合使用JDBC连接MySQL数据库

说明

庚子之初,新冠横行。纵使集华夏之力,三月始消。
工作三年有余,因此疫情,方觉唯有学习知识,日益进溢,才能在未来不确定的生活中,立于不败之地。

因为最近打算更深入的学习一下MyBatis框架,苦于探索合适的方法而迟迟不进,在此之际,
突然想到大学时高数老师说的一句话:如果这道题你不会做,你就抄例题,如果抄完例题还不会,就继续抄例题,直到抄会为止。后来,我抄了四年的例题,顺利毕业。

扯远了哈,回归正题。既然要学习MyBatis框架,那么原生的JDBC肯定是无法绕过的一个槛,因为MyBatis框架是对JDBC的封装,换句话说就是MyBatis框架是根据JDBC实现的。
对此,以此案例,再次熟悉一下JDBC的内容。本案例已上传至github

JDBC是什么

维基百科中对JDBC的解释是:Java 数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。
换句我们能听懂的话是,JDBC是Java语言用来连接数据库的桥梁,是一套规范用来提供对MySQL、Oracle、Sql Server等关系型数据库的连接。JDBC并不执行SQL语句,但是JDBC提供了执行SQL语句的接口。

项目搭建

引入相关依赖

上次使用JDBC还是Java初学阶段,这次使用Spring boot整合JDBC。使用Spring boot简化了jar包的引入流程,其他方面并无区别。
新建Spring boot项目的过程这次不做说明,主要说一下比较关键的地方。使用JDBC连接数据库,首先要引入相关依赖,我使用MySQL作为测试数据库,
所以引入的依赖是:

    
    <dependency>
        <groupId>mysqlgroupId>
        <artifactId>mysql-connector-javaartifactId>
    dependency>

    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-jdbcartifactId>
    dependency>

在此说明一下其他数据库的连接依赖,对自己的知识点也算一种扩展

    
    <dependency>
        <groupId>com.oraclegroupId>
        <artifactId>ojdbc6artifactId>
        <version>11.2.0version>
    dependency> 
    
    
    <dependency>
        <groupId>com.microsoft.sqlservergroupId>
        <artifactId>sqljdbc4artifactId>
        <version>4.0version>
    dependency>

这里贴出现在的pom.xml文件

    
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0modelVersion>
        <parent>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-parentartifactId>
            <version>2.3.1.RELEASEversion>
            <relativePath/> 
        parent>
        <groupId>com.watimer.studygroupId>
        <artifactId>jdbcartifactId>
        <version>0.0.1-SNAPSHOTversion>
        <name>jdbcname>
        <description>Demo project for Spring Bootdescription>
    
        <properties>
            <java.version>1.8java.version>
        properties>
    
        <dependencies>
            
            <dependency>
                <groupId>mysqlgroupId>
                <artifactId>mysql-connector-javaartifactId>
            dependency>
            <dependency>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-starter-jdbcartifactId>
            dependency>
    
            <dependency>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-starterartifactId>
            dependency>
    
            <dependency>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-starter-testartifactId>
                <scope>testscope>
                <exclusions>
                    <exclusion>
                        <groupId>org.junit.vintagegroupId>
                        <artifactId>junit-vintage-engineartifactId>
                    exclusion>
                exclusions>
            dependency>
        dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.bootgroupId>
                    <artifactId>spring-boot-maven-pluginartifactId>
                plugin>
            plugins>
        build>
    
    project>

添加数据库配置文件和其他参数

在resource文件夹下application.properties文件中添加相关配置参数:

    # 启动端口号
    server.port=9696

新建测试类

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;


@Controller
@RequestMapping("/jdbc")
public class TestController {

    @RequestMapping("/user")
    @ResponseBody
    public List<Map> list() throws SQLException {
        Connection connection = null;
        Statement statement = null;
        ResultSet resultSet = null;
        List<Map> list = new ArrayList<>();
        try {
            // 1、获取Connection
            connection = DriverManager.getConnection("jdbc:mysql://192.168.1.15:3306/ivt-city?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull","root","Aa123456");
            // 2、获取Statement
            statement = connection.createStatement();
            // 3、准备SQL
            String sql = "SELECT * FROM jj_lavendy_user_info";
            // 4、执行查询,得到ResultSet
            resultSet = statement.executeQuery(sql);
            // 5、处理ResultSet
            Map map = new ConcurrentHashMap();
            while (resultSet.next()){
                map.put("id",resultSet.getString("userId"));
                map.put("lavendy_user_name",resultSet.getString("lavendy_user_name"));
                list.add(map);
            }
        } catch (SQLException e) {
            // 6、关闭数据库资源
            connection.close();
            e.printStackTrace();
        } finally {
            // 6、关闭数据库资源
            connection.close();
        }

        for (Map map:list){
            System.out.println(map.toString());
        }
        return list;

    }
}

执行结果

接口请求

Spring boot整合使用JDBC连接MySQL数据库_第1张图片

打印结果

Spring boot整合使用JDBC连接MySQL数据库_第2张图片

相关资料

数据库表信息

Spring boot整合使用JDBC连接MySQL数据库_第3张图片

你可能感兴趣的:(JDBC)