• JDBC数据库的连接


    JDBC数据库的连接

    简介:本文以简洁的篇幅带领大家快速入门java连接数据库,以查询为演示方案。
    推荐学习路线JDBC数据库的连接->Connection(数据库连接对象)->Driud数据库连接池的使用->ResultSet->通过PreparedStatement预防SQL注入->JDBC增删改查案例讲解 大家跟着敲完基本就可以JDBC基础毕业了。

    编写代码步骤

    • 创建工程,导入驱动jar包

    下载官网:https://downloads.mysql.com/archives/c-j/
    在这里插入图片描述

    • 注册驱动

      # mysql5的注册驱动的办法。
      Class.forName("com.mysql.jdbc.Driver");
      
      
      • 1
      • 2
      • 3
      # mysql8的注册驱动的办法。
      Class.forName("com.mysql.cj.jdbc.Driver");
      
      • 1
      • 2
    • 获取连接

      Connection conn = DriverManager.getConnection(url, username, password);
      
      • 1

      Java代码需要发送SQL给MySQL服务端,就需要先建立连接

    • 定义SQL语句

      String sql =update…” ;
      
      • 1
    • 获取执行SQL对象

      执行SQL语句需要SQL执行对象,而这个执行对象就是Statement对象

      Statement stmt = conn.createStatement();
      
      • 1
    • 执行SQL

      stmt.executeUpdate(sql);  
      
      • 1
    • 处理返回结果

    • 释放资源

    具体操作

    • 创建新的空的项目,定义项目的名称,并指定位置
      在这里插入图片描述
      在这里插入图片描述
    • 对项目进行设置,JDK版本、编译版本
      在这里插入图片描述
      在这里插入图片描述

    创建lib

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

    导入驱动包

    将mysql的驱动包放在模块下的lib目录(随意命名)下,并将该jar包添加为库文件
    在这里插入图片描述

    • 在添加为库文件的时候,有如下三个选项
      • Global Library : 全局有效
      • Project Library : 项目有效
      • Module Library : 模块有效
        在这里插入图片描述

    创建src与创建类

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

    快速入门代码

    建表语句

    /*
     Navicat MySQL Data Transfer
    
     Source Server         : 本机
     Source Server Type    : MySQL
     Source Server Version : 80024
     Source Host           : localhost:3306
     Source Schema         : books
    
     Target Server Type    : MySQL
     Target Server Version : 80024
     File Encoding         : 65001
    
     Date: 01/12/2022 12:53:02
    */
    
    SET NAMES utf8mb4;
    SET FOREIGN_KEY_CHECKS = 0;
    
    -- ----------------------------
    -- Table structure for book
    -- ----------------------------
    DROP TABLE IF EXISTS `book`;
    CREATE TABLE `book`  (
      `reclD` varchar(6) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
      `title` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
      `type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
      `price` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL
    ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
    
    SET FOREIGN_KEY_CHECKS = 1;
    insert into book values("1",	"Java Programming",	"Computer",	"20"),
    					   ("2",	"Java EE Technology",	"Computer",	"41"),
    					   ("3",	"Information System",	"Computer",	"37");
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35

    在这里插入图片描述

    package com.study.jdbc;
    
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
    
    
    /**
     * JDBC快速入门
     */
    public class JDBCDemo {
    
        public static void main(String[] args) throws Exception {
            //1. 注册驱动
            Class.forName("com.mysql.cj.jdbc.Driver");
            //2. 获取连接
            // String url = "jdbc:mysql://127.0.0.1:3306/books"; // 如果是mysql5这样写
            String url = "jdbc:mysql://localhost:3306/books?serverTimezone=GMT%2B8&useOldAliasMetadataBehavior=true"; // 如果是mysql8这样写
            String username = "root";
            String password = "1234";
    
            Connection conn = DriverManager.getConnection(url, username, password);
            //3. 定义sql
            String sql = "select * from book";
            //4. 获取执行sql的对象 Statement
            Statement stmt =  conn.createStatement();
            //5. 执行sql
            ResultSet rs = stmt.executeQuery(sql);
    //        //6. 处理结果
            while(rs.next()){
                // 获取数据
                String recId = rs.getString(1);
                String title = rs.getString(2);
                String type = rs.getString(3);
                double price = rs.getDouble(4);
                System.out.print(recId + " ");
                System.out.print(title + " ");
                System.out.print(type + " ");
                System.out.println(price);
                System.out.println();
                System.out.println("--------------");
            }
            //7. 释放资源
            stmt.close();
            conn.close();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49

    运行结果
    在这里插入图片描述

  • 相关阅读:
    Golang常用语法糖
    1186: 奖学金(结构体专题)
    ES6语法总结--上篇(基础篇)
    电脑D盘格式化会有什么影响?电脑D盘格式化了怎么恢复数据
    【CCPC2020长春站】【区间dp】Abstract Painting
    Spring Cloud(九):Spring Cloud Gateway 断言、过滤器、限流、源码分析
    K8S之应用配置管理笔记
    【牛客刷题】bfs和dfs (二叉树层序遍历、矩阵最长递增路径、被围绕的区域)
    MC9S12DP512VPVE、MC9S12DT512CPVE HCS12系列 微控制器 16位 闪存 112LQFP
    如何在WORDPRESS里面添加GLEGoogle Tag Manager广告跟踪代码
  • 原文地址:https://blog.csdn.net/qq_51447496/article/details/128018451