欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報激活碼778899分享:MySQL JDBC 編程

柚子快報激活碼778899分享:MySQL JDBC 編程

http://yzkb.51969.com/

難道是針對?個數(shù)據(jù)庫寫?套調(diào)?的?法嗎?因為驅(qū)動和 API 完全不同,所以不同的數(shù)據(jù)操作也是不同 的,要針對每種數(shù)據(jù)庫寫?套調(diào)?代碼就太麻煩了,那要怎么辦?

解決以上問題的辦法就是使用 JDBC。

2.1 JDBC 定義

JDBC,即 Java Database Connectivity,Java 數(shù)據(jù)庫連接。是?種?于執(zhí)行?SQL 語句的 Java API,?它是 Java 中的數(shù)據(jù)庫連接規(guī)范。這個 API 由 java.sql.*,javax.sql.* 包中的?些類和接?組成,它為?Java 開發(fā)人員操作數(shù)據(jù)庫提供了?個標準的 API,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)?訪問。

簡單來說,使用了 JDBC 之后,不管是什么數(shù)據(jù)庫與什么數(shù)據(jù)庫驅(qū)動,我們只需要使用?套標準代碼就可以實現(xiàn)對不同數(shù)據(jù)庫進行統(tǒng)?操作(添加、修改、刪除、查詢),也就解決了我們上面說的那些問題了。

2.2?JDBC 工作原理

JDBC 為多種關(guān)系數(shù)據(jù)庫提供了統(tǒng)?訪問?式,作為特定?商數(shù)據(jù)庫訪問 API 的?種?級抽象,?它主要包含?些通?的接?類。

JDBC 訪問數(shù)據(jù)庫層次結(jié)構(gòu):

JDBC 優(yōu)勢:

Java 語?訪問數(shù)據(jù)庫操作完全?向抽象接?編程。 開發(fā)數(shù)據(jù)庫應?不?限定在特定數(shù)據(jù)庫?商的 API。 程序的可移植性??增強。

3.JDBC 使用

=========

JDBC 操作步驟如下:

3.1 創(chuàng)建項目并添加 MySQL 驅(qū)動

創(chuàng)建?個 Java 項?,并添加 MySQL 驅(qū)動(mysql-connector-java-5.1.47.jar),需要注意不同數(shù)據(jù)庫版本要對應相應的驅(qū)動包。

操作步驟:點擊項?屬性 -> Modules -> Dependencies -> 點擊“+”號 -> 1.Jars or directories -> 選擇驅(qū)動包 -> 點擊 OK 確認。

3.2 使用代碼操作數(shù)據(jù)庫

操作數(shù)據(jù)庫 MySQL 提供了兩種操作 API:

DriverManager DataSource(推薦使用)

接下來咱們使? DataSource 來實現(xiàn)操作數(shù)據(jù)庫。

使用代碼操作數(shù)據(jù)庫分為以下 5 個步驟:

獲取數(shù)據(jù)源(準備?作,點擊 MySQL 連接?具,并輸??戶名、密碼) 獲取連接(敲擊回車試圖建?客戶端和服務器端的連接) 獲取執(zhí)行器(連接到服務器并切換到數(shù)據(jù)庫) 查詢或操作數(shù)據(jù)庫(輸?命令,并得到結(jié)果) 關(guān)閉連接(關(guān)閉客戶端)

3.2.1 獲得數(shù)據(jù)源

數(shù)據(jù)源是 MysqlDataSource,獲取?式如下,需要輸?數(shù)據(jù)庫連接的 MySQL 服務器地址、?戶名和密碼:

// 1.獲取數(shù)據(jù)源 DataSource (設(shè)置MySQL的服務器地址)

MysqlDataSource dataSource = new MysqlDataSource();

// 1.1 設(shè)置連接的 MySQL 服務器

dataSource.setURL("jdbc:mysql://127.0.0.1:3306/study?characterEncoding=utf8&useSSL=true");

// 1.2 設(shè)置?戶名

dataSource.setUser("root");

// 1.3 設(shè)置密碼

dataSource.setPassword("12345678");

注意:如果操作過程中出現(xiàn)了錯誤,可嘗試將useSSL改為false,因為有些電腦不支持SSL加密。

3.2.2 獲得連接

// 2.得到連接 Connection

Connection connection = dataSource.getConnection();

連接對象是 Connection,注意此步驟操作容易出錯,?定是 java.sql?包下的 Connection 對象:

3.2.3 獲得執(zhí)行器

執(zhí)行器是用來執(zhí)行?SQL 命令的,執(zhí)行器有三種:

Statement PreparedStatement CallableStatement

實際開發(fā)中最常?的是 PreparedStatement 對象,PreparedStatement 優(yōu)點如下:

具體實現(xiàn)如下:

// 3.得到執(zhí)行器 (組裝MySQL)

String insertSql = "insert into city(id, name) values(?, ?)";

PreparedStatement statement = connection.prepareStatement(insertSql);

// 填充占位符

statement.setInt(1, 5);

statement.setString(2, "廣東");

PreparedStatement 有主要兩種重要的方法:

executeQuery():方法執(zhí)行后返回單個結(jié)果集的,通常用于 select 語句。 executeUpdate():方法返回值是?個整數(shù),指示受影響的行數(shù),通常用于 update、insert、?delete 語句。

3.3.4 查詢或操作數(shù)據(jù)庫

添加數(shù)據(jù)庫使用?PreparedStatement.executeUpdate() 方法,返回?個 整數(shù),具體實現(xiàn)代碼如下:

// 4.執(zhí)行 SQL

int result = statement.executeUpdate();

System.out.println("受影響的行數(shù):" + result);

3.3.5 關(guān)閉數(shù)據(jù)庫連接

關(guān)閉數(shù)據(jù)庫連接是為了不浪費 MySQL 服務器端的資源,最終實現(xiàn)代碼:

package city_jdbc;

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

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.SQLException;

public class AddCity {

public static void main(String[] args) throws SQLException {

// 1.獲取數(shù)據(jù)源 DataSource (設(shè)置MySQL的服務器地址)

MysqlDataSource dataSource = new MysqlDataSource();

// 1.1 設(shè)置連接的 MySQL 服務器

dataSource.setURL("jdbc:mysql://127.0.0.1:3306/study?characterEncoding=utf8&useSSL=true");

// 1.2 設(shè)置?戶名

dataSource.setUser("root");

// 1.3 設(shè)置密碼

dataSource.setPassword("12345678");

// 2.得到連接 Connection

Connection connection = dataSource.getConnection();

// 3.得到執(zhí)行器 (組裝MySQL)

String insertSql = "insert into city(id, name) values(?, ?)";

PreparedStatement statement = connection.prepareStatement(insertSql);

// 填充占位符

statement.setInt(1, 5);

statement.setString(2, "廣東");

// 4.執(zhí)行 SQL

int result = statement.executeUpdate();

System.out.println("受影響的行數(shù):" + result);

// 5.關(guān)閉資源(從小到大)

statement.close();

connection.close();

}

}

運行結(jié)果:

4. 查詢功能實現(xiàn)

查詢數(shù)據(jù)庫使用?PreparedStatement.executeQuery?方法,返回?個 ResultSet 對象,具體實現(xiàn)代碼如下:

package city_jdbc;

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

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

public class SelCity {

public static void main(String[] args) throws SQLException {

// 1.獲取數(shù)據(jù)源,得到DataSource

MysqlDataSource dataSource = new MysqlDataSource();

dataSource.setURL("jdbc:mysql://127.0.0.1:3306/study?characterEncoding=utf8&useSSL=true");

dataSource.setUser("root");

dataSource.setPassword("12345678");

// 2.得到連接

Connection connection = dataSource.getConnection();

// 3.得到執(zhí)行器,并組裝MySQL

String selectSql = "select * from city where id

PreparedStatement statement = connection.prepareStatement(selectSql);

statement.setInt(1, 10);

// 4.執(zhí)行SQL,打印查詢結(jié)果

ResultSet resultSet = statement.executeQuery(); // 得到結(jié)果集

while (resultSet.next()) { // 如果結(jié)果集的下一行有數(shù)據(jù)

City city = new City();

// resultSet.getInt("id") ——> 查詢當前行中列名為“id”的值

city.setId(resultSet.getInt("id"));

city.setName(resultSet.getString("name"));

System.out.println(city);

}

// 5.關(guān)閉資源

resultSet.close();

statement.close();

connection.close();

}

}

ResultSet 對象它被稱為結(jié)果集,它代表符合 SQL 語句條件的所有行,并且它通過?套 getXXX 方法提供了對這些行中數(shù)據(jù)的訪問。

ResultSet 里的數(shù)據(jù)一行一行排列,每行有多個字段,并且有?個記錄指針,指針所指的數(shù)據(jù)行叫做當前數(shù)據(jù)行,我們只能來操作當前的數(shù)據(jù)行。我們?nèi)绻胍〉媚?條記錄,就要使用?ResultSet 的 next() 方法 ,如果我們想要得到 ResultSet 里的所有記錄,就應該使用?while 循環(huán)。

City 類:

柚子快報激活碼778899分享:MySQL JDBC 編程

http://yzkb.51969.com/

相關(guān)文章

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19526263.html

發(fā)布評論

您暫未設(shè)置收款碼

請在主題配置——文章設(shè)置里上傳

掃描二維碼手機訪問

文章目錄