Java通過JDBC 進行MySQL資料庫操作
一:前言
在測試工作中難免會和資料庫打交道,可能大家對資料庫語句都比較熟,比如常見的增刪改查等,但是當我們在做自動化測試時,比如介面測試,大部分請求引數,可能都是從資料庫中取值,並且介面返回值最後都會記錄在資料庫中,這樣前提就需要和資料庫建立連線,才能進行讀寫操作。
二:JDBC是什麼
java提供了一個API也就是JDBC(Java Data Base Connectivity),可以為多種關係資料庫提供統一訪問和操作,它由一組用Java語言編寫的類和介面組成。
- 沒有jdbc之前
java開發人員需要維護不同的資料庫的驅動程式,如果資料庫的底層實現改變,驅動程式可能會隨之改變!!
- 有了jdbc之後:
java開發人員只需維護java應用和一套規範,也就是jdbc介面。資料庫廠商提供具體的java驅動程式,資料庫廠商的底層實現改變,廠商隨之更新驅動程式,而不影響java應用程式!!
三:實現步驟
匯入資料包
需要包括含有需要進行資料庫程式設計的JDBC類的包。大多數情況下,使用 import java.sql.* 就可以了.開啟資料庫連線
需要使用DriverManager.getConnection() 方法建立一個Connection物件,它代表與資料庫的物理連線。執行資料庫操作
需要使用型別宣告的物件建立並提交一個SQL語句到資料庫。從結果集中提取資料
要求使用適當的關於ResultSet.getXXX()方法來檢索結果集的資料。清理環境
需要明確地關閉所有的資料庫資源相對依靠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 使用jdbc向mysql資料庫中插入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
java用JDBC連線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