MySQL的JDBC的使用

JDBC 標準,在代碼中的表現,一組 interface(接口),實現了這些接口的類 Driver (驅動)
MySQL相關驅動
Jar 包,是一個zip壓縮包,按一定的標準管理起來的一組類文件(*.class)

搭建實用JDBC環境的步驟
1.在根目錄下新建 lib 目錄
在這裏插入圖片描述
2.把 mysql-jdbc 的 jar 包複製到 lib 目錄;
在這裏插入圖片描述
3.選擇 File 下的 Project Structure

在這裏插入圖片描述
4.選擇 libraries 下的 + ,然後點擊 Java
在這裏插入圖片描述
5.選擇新建的 lib 目錄,繼續點OK
在這裏插入圖片描述
**目的:**讓 IDER(javac/java) 可以找到 MySQL-Driver 的類文件(*.class)

**驗證:**這些類在代碼中是否可以正常導入:

import com.mysql.jdbc.Driver

IDEA 沒有報錯,表示配置環境正確

代碼演示 JDBC 的套路

準備工作:
在 MySQL 上手動建立一個數據庫 java20_0210:

create database java20_0210;
use java20_0210;
select database();

建立一個測試用表:

create table users(
id INT, name VARCHAR(255)
);

通過JDBC 進行 mysql 連接:

JDBC裏面提供了兩套 API :

  1. DriverManager
  2. DataSource

步驟:

  1. 註冊驅動
    (JDBC-Driver)Class.forName(“com.mysql.jdbc.Driver”);

2.獲取一條 MySQL 的網絡連接對象(TCP 連接)
a) 配置連接 URL(一般大家需要修改的,只有默認數據庫)

在這裏插入圖片描述
在這裏插入圖片描述

3. 通過連接獲取一條語句對象(每個 statement 對象只能用於一條語句)

import java.sql.Statement;

Statement statement = connection.createStatement();
方法一:
```java
import java.sql.Connection;

String "jdbc:mysql://127.0.0.1:3306/java20_0210?useSSL=false&characterEncoding=utf8";
String user = "root";	//連接 mysql 的用戶名
String passwd = "";	//連接 mysql 的密碼
Connection connection = DriverManager.getConnection(
	url,user,password);



方法二:

```java
package com.edu.Test0531;

import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

import javax.sql.DataSource;

public class TestJDBC {
    public static void main(String[] args) {
        //1.創建DataSource對象
        DataSource dataSource = new MysqlDataSource();
        //接下來需要針對 DataSource 進行一些配置,以便方便以後能夠順利的訪問到數據庫服務器

        ((MysqlDataSource) dataSource).setURL("jdbc:mysql://127.0.0.1:3306/java_0531?characterEncoding=utf-8&useSSL=true");
    }
}

在這裏插入圖片描述

注意:
建立連接(Connection),不能寫作建立鏈接(Link)。

4.執行具體的 增/刪/查/改操作

Insert 增

Statement statement = connection.creatrStatement();
String sql = "INSERT INTO users(id,name)VALUES(1,'XXX')";
statement.executeUpdata(sql);	//通過 statement 對象來執行 SQL 語句

Update 改

  1. 創建DataSource 對象
  2. 創建 Connection 對象
Statement statement = connection.createStatement();
String sql = "INSERT INTO users(id,name)VALUES(1,'YYY')";
statement.executeUpdata(sql);

Delete 刪

Statement statement = connection.createStatement();
String sql = "Delect FROM users WHERE id = 1";
statement.executeUpdata(sql);

Select 查

1.需要拿到結果集對象
2.從結果集對象中遍歷獲取數據
rs.next() 會讓結果集中的遊標下移一行,返回 ture ,表示遊標當前行有數據,返回 false ,表示遊標已經超過結果範圍了
3.銷燬結果對象
注意:列的下標不是從 0 開始的

Statement statement = connection.createStatement();
String sql = "SELECT id,name FROM users";
ResultSet resultSet = statement.executeQuery(sql);
List<String>nameList = new ArryList<>();
while(resultSet.next()){
/*
需要不同類型,調用不同方法
int r = resultSet.getInt();
long r = resultSet.getLong();
String r = resultSet.getString();
*/

/*
int id = resultSet.getInt(1);	//下標是1開始,從0
int id = resultSet.getINT("id");//通過字段名稱獲取
*/

int id = resultSet.getInt(1);
String name = resultSet.getString("name");
//結果集馬上需要銷燬,所以通過 List 保存結果
nameList.add(name);
System.out.println(id + "," + name);
}

5.銷燬

resultSet.close();
statement.close();

總結:
1.註冊 Driver
2.獲取 Connection 對象
3.獲取 Statement 對象
4.執行 CRUD sql(Select 有點特殊,有個結果集問題)
1)Insert/Update/Delete executeUpdate (建議)
2)Select executeQuery (建議)
5.銷燬資源(反向順序)

注意:
Driver 註冊只需要一次
Connection 一般也只需要一次(特殊情況下多個連接)
可以獲取多個 Statement
每個 Statement 只能執行一條 SQL

檢測:
在 cmd 上輸入:

Select * FROM users;   //查看錶數據

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章