zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

JDBC数据库的连接

2023-09-14 09:14:25 时间

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");
    
    
    # mysql8的注册驱动的办法。
    Class.forName("com.mysql.cj.jdbc.Driver");
    
  • 获取连接

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

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

  • 定义SQL语句

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

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

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

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

  • 释放资源

具体操作

  • 创建新的空的项目,定义项目的名称,并指定位置
    在这里插入图片描述
    在这里插入图片描述
  • 对项目进行设置,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");

在这里插入图片描述

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();
    }
}

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