什么是JDBC?
概念:JAVA Database Connectivity Javas數據庫連接,Java語言操作數據庫接口,然后由各個數據庫廠商去實現這個接口,提供數據庫驅動java包,我們可以使用這套接口,真正執行的是jar驅動包中的實習類
使用一張圖讓大家更為直觀的理解:
coder就是寫這套接口的程序員
JDBC的使用步驟
1.導入驅動jar包
2.注冊驅動
3.獲取數據庫連接對象
4.定義sql執行語句
5.獲取sql語句執行對象
6.執行sql語句返回結果
7.處理結果
8.釋放結果
代碼實現
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
package JDBC; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; public class Main { public static void main(String[] args) throws ClassNotFoundException, SQLException { //注冊驅動 Class.forName( "com.mysql.jdbc.Driver" ); //獲取數據庫連接對象 Connection connection = DriverManager.getConnection( "jdbc:mysql://localhost:3309/db2" , "root" , "1234" ); //定義sql語句 String sql= "update count set money=10000" ; //定義statement執行語句 Statement statement = connection.createStatement(); //執行sql語句 int i = statement.executeUpdate(sql); System.out.println( "共" +i+ "行受到影響" ); //關閉資源 statement.close(); connection.close(); } } |
類詳解
DriverManager:驅動管理對象
功能:
1.注冊驅動,告訴程序應該使用哪個驅動的java包
static void registerDriver(Driver driver) :注冊與給定的驅動程序 DriverManager 。
寫代碼使用:
1
|
Class.forName( "com.mysql.jdbc.Driver" ); |
查看jar包下的源碼得:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
package com.mysql.jdbc; import java.sql.DriverManager; import java.sql.SQLException; public class Driver extends NonRegisteringDriver implements java.sql.Driver { public Driver() throws SQLException { } static { try { //注冊驅動 DriverManager.registerDriver( new Driver()); } catch (SQLException var1) { throw new RuntimeException( "Can't register driver!" ); } } } |
我們可以發現在com.mysql.jdbc.Driver類中存在靜態代碼塊,內部調用registerDriver(new Driver)注冊驅動
mysql5之后可以省略注冊驅動的步驟
獲取數據庫連接
方法:static connection getConnection(String sql,String password)
參數:
* url:指定連接的路徑
* 語法:jdbc:mysql://ip地址(域名):端口號/數據庫名稱
* 例子:jdbc:mysql://localhost:3306/db3
* 細節:如果連接的是本機mysql服務器,并且mysql服務默認端口是3306,則url可以簡寫 為:jdbc:mysql:///數據庫名稱
* user:用戶名
* password:密碼
**
Connection 數據庫連接對象**
1.功能
1.1 獲取sql語句的執行對象
*Statement createStatement()
* PreparedStatement prepareStatement(String sql)
1.2 管理事務
開啟事務:setAutoCommit(boolean autocommit),調用改方法,參數為false時開啟事務
提交事務:commit();
回滾事務:rollback()
1.3 statement:執行sql語句的對象
執行sql
1. boolean execute(String sql) :可以執行任意的sql 了解
2. int executeUpdate(String sql) :執行DML(insert、update、delete)語句、 DDL(create,alter、drop)語句
* 返回值:影響的行數,可以通過這個影響的行數判斷DML語句是否執行成功 返回值>0的則執行成功,反之,則失敗。
1
2
3
4
5
6
7
|
** 1 .4ResultSet:結果集對象,封裝查詢結果** boolean next():游標向下移動一行,判斷當前行是不是最后一行,如果是則返回 false ,如果不是則返回 true getXxx(參數):獲取數據 * Xxx:代表數據類型 如: int getInt() , String getString() * 參數: 1 . int :代表列的編號,從 1 開始 如: getString( 1 ) 2 . String:代表列名稱。 如: getDouble( "balance" ) |
使用步驟:
- 游標向下移動一行
- 判斷是否有數據
- 獲取數據
代碼演示
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
package JDBC; import java.sql.*; public class Main { public static void main(String[] args) throws ClassNotFoundException, SQLException { //注冊驅動 Class.forName( "com.mysql.jdbc.Driver" ); //獲取數據庫連接對象 Connection connection = DriverManager.getConnection( "jdbc:mysql://localhost:3309/db2" , "root" , "1234" ); //定義sql語句 String sql= "SELECT *FROM COUNT " ; //定義statement執行語句 Statement statement = connection.createStatement(); //執行sql語句 ResultSet resultSet = statement.executeQuery(sql); //循環輸出 while (resultSet.next()){ int anInt = resultSet.getInt( 1 ); String string = resultSet.getString( 2 ); int anInt2 = resultSet.getInt( 3 ); System.out.println( "ID:" +anInt); System.out.println( "name:" +string); System.out.println( "money:" +anInt2); } //關閉資源 statement.close(); connection.close(); } } |
結果
到此這篇關于java JDBC系列教程之JDBC類的簡析與JDBC的基礎操作的文章就介紹到這了,更多相關java JDBC類與操作內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://www.cnblogs.com/pjhaymy/archive/2020/07/27/13384013.html