1. 程式人生 > >Java通過JDBC 進行MySQL資料庫操作

Java通過JDBC 進行MySQL資料庫操作

一:前言

在測試工作中難免會和資料庫打交道,可能大家對資料庫語句都比較熟,比如常見的增刪改查等,但是當我們在做自動化測試時,比如介面測試,大部分請求引數,可能都是從資料庫中取值,並且介面返回值最後都會記錄在資料庫中,這樣前提就需要和資料庫建立連線,才能進行讀寫操作。

二:JDBC是什麼

java提供了一個API也就是JDBC(Java Data Base Connectivity),可以為多種關係資料庫提供統一訪問和操作,它由一組用Java語言編寫的類和介面組成。

  • 沒有jdbc之前
    java開發人員需要維護不同的資料庫的驅動程式,如果資料庫的底層實現改變,驅動程式可能會隨之改變!!

這裡寫圖片描述

  • 有了jdbc之後:
    java開發人員只需維護java應用和一套規範,也就是jdbc介面。資料庫廠商提供具體的java驅動程式,資料庫廠商的底層實現改變,廠商隨之更新驅動程式,而不影響java應用程式!!

這裡寫圖片描述

三:實現步驟

  1. 匯入資料包
    需要包括含有需要進行資料庫程式設計的JDBC類的包。大多數情況下,使用 import java.sql.* 就可以了.

  2. 開啟資料庫連線
    需要使用DriverManager.getConnection() 方法建立一個Connection物件,它代表與資料庫的物理連線。

  3. 執行資料庫操作
    需要使用型別宣告的物件建立並提交一個SQL語句到資料庫。

  4. 從結果集中提取資料
    要求使用適當的關於ResultSet.getXXX()方法來檢索結果集的資料。

  5. 清理環境
    需要明確地關閉所有的資料庫資源相對依靠JVM的垃圾收集。

JDBCUtil類

  • 主程式
package com.jdbc;

//匯入資料包
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import
java.util.Properties; /** * @author Charlie.chen * */ public class JDBCUtil{ // 驅動包名和資料庫url private static String url = null; private static String driverClass = null; // 資料庫使用者名稱和密碼 private static String userName = null; private static String password = null; /** * 初始化驅動程式 * 靜態程式碼塊中(只加載一次) */ static{ try { //讀取db.properties檔案 Properties prop = new Properties(); /** * 使用類路徑的讀取方式 * / : 斜槓表示classpath的根目錄 * 在java專案下,classpath的根目錄從bin目錄開始 * 在web專案下,classpath的根目錄從WEB-INF/classes目錄開始 */ InputStream in = JDBCUtil.class.getResourceAsStream("/db.properties"); //載入檔案 prop.load(in); //讀取資訊 url = prop.getProperty("url"); driverClass = prop.getProperty("driverClass"); userName = prop.getProperty("user"); password = prop.getProperty("password"); //註冊驅動程式 Class.forName(driverClass); } catch (Exception e) { e.printStackTrace(); System.out.println("驅程程式註冊出錯"); } } /** * 開啟資料庫驅動連線 */ public static Connection getConnection(){ try { Connection conn = DriverManager.getConnection(url, userName, password); return conn; } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException(e); } } /** * 清理環境,關閉連線(順序:後開啟的先關閉) */ public static void close(Connection conn,Statement stmt,ResultSet rs){ if(rs!=null) try { rs.close(); } catch (SQLException e1) { e1.printStackTrace(); throw new RuntimeException(e1); } if(stmt!=null){ try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException(e); } } if(conn!=null){ try { conn.close(); } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException(e); } } } public static void main(String[] args) { Connection conn = null; Statement stmt = null; ResultSet rs = null; conn=JDBCUtil.getConnection(); try { stmt=conn.createStatement(); //準備sql操作語句 String sql= "SELECT id, first, last, age FROM YourDBName"; rs = stmt.executeQuery(sql); //從結果集中提取資料 while(rs.next()){ int id = rs.getInt("id"); int age = rs.getInt("age"); String first = rs.getString("first"); String last = rs.getString("last"); System.out.print("ID: " + id); System.out.print(", Age: " + age); System.out.print(", First: " + first); System.out.println(", Last: " + last); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ JDBCUtil.close(conn, stmt, rs); } } }
  • JDBC配置檔案db.properties
url=jdbc:mysql://localhost/yourDBName
user=root
password=root
driverClass=com.mysql.jdbc.Driver

四:JDBC核心API

JDBC介面核心的API

  • java.sql.*
  • javax.sql.*

        |- Driver介面: 表示java驅動程式介面。所有的具體的資料庫廠商要來實現此介面。
            |- connect(url, properties):  連線資料庫的方法。
                    url: 連線資料庫的URL 
                        URL語法: jdbc協議:資料庫子協議://主機:埠/資料庫
                        user: 資料庫的使用者名稱
                        password: 資料庫使用者密碼
        |- DriverManager類: 驅動管理器類,用於管理所有註冊的驅動程式
            |-registerDriver(driver)  : 註冊驅動類物件
            |-Connection getConnection(url,user,password);  獲取連線物件
    
        |- Connection介面: 表示java程式和資料庫的連線物件。
                |- Statement createStatement() : 建立Statement物件
                |- PreparedStatement prepareStatement(String sql)  建立PreparedStatement物件
                |- CallableStatement prepareCall(String sql) 建立CallableStatement物件
    
        |- Statement介面: 用於執行靜態的sql語句
                |- int executeUpdate(String sql)  : 執行靜態的更新sql語句(DDL,DML)
                |- ResultSet executeQuery(String sql)  :執行的靜態的查詢sql語句(DQL)
    
            |-PreparedStatement介面:用於執行預編譯sql語句
                    |- int executeUpdate() : 執行預編譯的更新sql語句(DDL,DML)
                    |-ResultSet executeQuery()  : 執行預編譯的查詢sql語句(DQL)
    
            |-CallableStatement介面:用於執行儲存過程的sql語句(call xxx)
                        |-ResultSet executeQuery()  : 呼叫儲存過程的方法
    
    
        |- ResultSet介面:用於封裝查詢出來的資料
                |- boolean next() : 將游標移動到下一行
                |-getXX() : 獲取列的值
    

五:常見的SQL執行語句

String sql = "CREATE TABLE student(id INT PRIMARY KEY AUTO_INCREMENT,NAME VARCHAR(20),gender VARCHAR(2))";
//傳送sql語句,執行sql語句,得到返回結果
int count = stmt.executeUpdate(sql);

String sql = "SELECT * FROM student";
//執行sql
ResultSet rs = stmt.executeQuery(sql);

String sql = "INSERT INTO student(NAME,gender) VALUES('李四','女')";
int count = stmt.executeUpdate(sql);

String sql = "UPDATE student SET NAME='"+name+"' WHERE id="+id+"";

String sql = "DELETE FROM student WHERE id="+id+"";

六:補充

資料庫url制定

當載入的驅動程式,可以建立程式中使用DriverManager.getConnection()方法的連線。為方便參考,讓列出了三個過載DriverManager.getConnection()方法:

getConnection(String url)

getConnection(String url, Properties prop)

getConnection(String url, String user, String password)

在這裡,每個表單需要一個數據庫URL。資料庫的URL是指向資料庫地址。

制定一個數據庫URL是大多數用在建立連線相關。
如圖列出了下來流行的JDBC驅動程式名和資料庫的URL。
這裡寫圖片描述

參考資料

相關推薦

Java通過JDBC 進行MySQL資料庫操作

一:前言 在測試工作中難免會和資料庫打交道,可能大家對資料庫語句都比較熟,比如常見的增刪改查等,但是當我們在做自動化測試時,比如介面測試,大部分請求引數,可能都是從資料庫中取值,並且介面返回值最後都會記錄在資料庫中,這樣前提就需要和資料庫建立連線,才能進行讀寫

Java 通過JDBC連線Mysql資料庫的方法和例項

  之前有兩篇文章講了安裝mysql(ubuntu和windows)和視覺化工具workbench的使用,這篇文章就講一下java程式是如何連線MySQL資料庫的。  Java是通過JDBC連線Mysql資料庫的。JDBC(Java Data Base Connectivi

Android通過jdbc連線mySQL資料庫時,資料庫拒絕連線

原因: mysql伺服器出於安全考慮,預設只允許本機使用者通過命令列登入。 解決方案: 先通過localhost登入mysql伺服器 將mysql伺服器的mysql資料庫的user表中root使用者的Host欄位改為"%"。 操作如下: window+r 輸

java 使用jdbcmysql資料庫中插入1億條資料

<span style="font-size:14px;"><span style="font-size:14px;">package com.ddx.zhang; import java.sql.SQLException; import java

如何解決Java通過JDBC訪問MySQL時SSL連線告警問題

背景 MySQL 5.5.45+, 5.6.26+, 5.7.6+開始支援SSL連線,如果沒有明確設定相關的選項時,預設要求SSL連線。為相容性考慮,舊應用程式需要設定verifyServerCert

java利用jdbc連線Mysql資料庫——實現登入註冊功能

實現功能如下: ①0選中註冊,若使用者名稱相同則註冊失敗,重新選擇 ②若使用者名稱不存在則儲存到資料庫 ③1選中登入,若使用者名稱和密碼符合時,登入成功。 程式碼如下: package com.lucfzy; import java.sql.Connection; imp

javaJDBC連線mysql資料庫

java想要用JDBC連線mysql,必須要先配置好各個元素          首先,你得先安裝了資料庫,另外你安裝了jdk,當你確認安裝好了mysql和jdk再繼續下面的步驟          接著,下載mysql資料庫的驅動,將下載的檔案解壓,將其中的mysql-con

scala(一):通過jdbc連線mysql資料庫

1.主題描述 scala針對MySQL資料庫進行增刪改查的基本操作。 2.程式碼 package SparkSQLproject.Log import java.sql.{Connection, DriverManager} /** * scala通過jdb

Myeclipse中通過JDBC連線MySQL資料庫的詳細步驟

首先要說明的是,使用jdbc連線資料庫並不難,只要你按照接下來的步湊一步一步的做,理清思路,相信你肯定能夠成功。 一、準備工作 下載JDBC驅動。 網上有許多驅動可供下載,但魚龍混雜,可能部分讀者不知

Python進行MySQL資料庫操作

最近開始玩Python,慢慢開始喜歡上它了,以前都是用shell來實現一些自動化或者監控的操作,現在用Python來實現,感覺更棒,Python是一門很強大的面嚮物件語言,所以作為一個運維DBA或者運維來說,都應該學會用Python來提高工作效率。下面簡單的介紹

Java使用jdbc連線MySQL資料庫時設有設定編碼

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Erreur de syntaxe près de '????' à la ligne 1     at java.base/jdk.internal.

Java 通過 JDBC 對接MySql

1、安裝MySql軟體:       下載地址:https://dev.mysql.com/downloads/installer/ 2、安裝過後找出JDBC連線驅動jar檔案:mysql-connector-java-xxx.jar, 複製到Java工程中;

在 PowerDesigner 中通過JDBC連線 MySQL 資料庫

注意事項 記得不要漏掉最後的“;”符號。 (1)首先新建一個“PhysicalDataModel”型別的檔案,然後點選“Database”->"Configure  Connections",彈出視窗“Configure Data Connections”, 並選擇"Connection

java 通過jdbc驅動連線hive操作例項

               String insterSQL="LOAD DATA LOCAL INPATH '/work/hive/examples/files/kv1.txt' OVERWRITE INTO TABLE javabloger";                 String queryS

java使用jdbc連線mysql資料庫

1.下載jdbc的jar包 mysql的官網提供了JDBC的驅動程式是Connector/J,目前最新版是5.1.44。Connector/J的下載地址是http://www.mysql.com/downloads/connector/j。在瀏覽器開啟以後進入下載頁面 2

Java使用JDBC連線mysql資料庫及測試是否連線成功的方法

一、連線mysql資料庫: 步驟一:在eclipse下面建一個專案,我的是JDBC_Test, 步驟二:選中專案名稱,右鍵選擇Build Path->Configure Build Path…. 步驟三:進入Java Build Path 選擇L

如何簡單進行mysql資料庫操作

本文目標:雖然不是專業程式設計師,由於工作需要,也需要寫一點程式碼,比較長的程式碼可以分層,其中一個層是資料訪問層,用於讀寫資料庫,本人常用mysql,在此總結一下如何實現mysql讀寫操作。 自己的經驗:經常使用動軟針對mysql資料庫表自動生成的程式碼,一般說來,先建好

java通過JDBC獲取MySQL的資料實現

由慕課網聽之,後簡單的捋了一下,記下來,備後用 要從eclipse中的java程式碼獲取到MySQL資料庫中的資訊,Java提供了JDBC作為橋樑來實現 首先需要在我們的專案中匯入JDBC相關的包 下載:mysql-connector-java-5.0.8-bin.ja

純手寫利用poi讀取xls檔案,並通過JDBC存入MySQL資料庫

001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019

java 通過jdbc驅動連線hive操作

               String insterSQL="LOAD DATA LOCAL INPATH '/work/hive/examples/files/kv1.txt' OVERWRITE INTO TABLE javabloger";                 String query