目錄 1. JDBC簡介 2. JDBC項目 3. JDBC的導入 4. JDBC的使用 內容 JDBC簡介 什麼是JDBC JDBC的全稱是Java資料庫連接(Java Database connect),它是一套用於執行SQL語句的Java API。應用程式可通過這套API連接到關係資料庫,並使 ...
目錄
1. JDBC簡介
2. JDBC項目
3. JDBC的導入
4. JDBC的使用
內容
JDBC簡介
- 什麼是JDBC
JDBC的全稱是Java資料庫連接(Java Database connect),它是一套用於執行SQL語句的Java API。應用程式可通過這套API連接到關係資料庫,並使用SQL語句來完成對資料庫中數據的查詢、更新和刪除等操作。
2.什麼是mysql-connector-java
mysql-connector-java 是MySQL的JDBC驅動包,用JDBC連接MySQL資料庫時必須使用該jar包。
JDBC項目
-
打開IDEA新建項目,填寫項目名,選擇項目路徑
-
按照Java代碼書寫規範創建一個包並創建一個類
JDBC的導入
-
下載JDBC(MySQL版)
-
跳轉至版本選擇頁面
-
選擇版本下載
-
解壓mysql-connector-java-8.0.25.zip,生成mysql-connector-java-8.0.25
-
在JDBC項目所在目錄下創建lib文件夾
-
打開mysql-connector-java-8.0.25目錄,複製mysql-connector-java-8.0.25.jar
-
把mysql-connector-java-8.0.25.jar粘貼到lib目錄下
-
打開項目,點擊File->Project Structure
-
點擊Libraries -> + ->Java
-
選擇lib目錄下的mysql-connector-java-8.0.25.jar
-
點擊ok
-
點擊ok
-
查看mysql-connector-java-8.0.25.jar是否導入成功
JDBC的使用
- 必須提前安裝MySQL並且MySQL可用
- 載入MySQL驅動程式
package com.example.aji;
public class Main {
public static void main(String[] args) {
try {
//載入MySQL驅動程式
Class.forName("com.mysql.cj.jdbc.Driver");
}catch (Exception e){
e.printStackTrace();
}
//列印出Hello world!表名驅動程式載入成功
System.out.println("Hello world!");
}
}
-
DriverManager類
管理一組JDBC驅動程式的基本服務。一些常用方法:- getConnection(String url, String user, String password)
嘗試建立與給定資料庫URL的連接。
package com.example.aji; import java.sql.DriverManager; public class Main { public static void main(String[] args) { try { Class.forName("com.mysql.cj.jdbc.Driver"); //mysql資料庫相關信息 String url="jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf-8"; String user="root"; String password="123456789"; DriverManager.getConnection(url,user,password); }catch (Exception e){ e.printStackTrace(); } System.out.println("Hello world!"); } }
- getConnection(String url, String user, String password)
-
Connection類
Connection與特定資料庫的連接(會話)。 執行SQL語句併在連接的上下文中返回結果。Connection對象的資料庫能夠提供描述其表,其支持的SQL語法,其存儲過程,此連接的功能等的信息。 一些常用方法:-
close()
立即釋放此 Connection對象的資料庫和JDBC資源,而不是等待它們自動釋放。 -
createStatement()
創建一個 Statement對象,用於將SQL語句發送到資料庫。
package com.example.aji; import java.sql.Connection; import java.sql.DriverManager; public class Main { public static void main(String[] args) { try { Class.forName("com.mysql.cj.jdbc.Driver"); //mysql資料庫相關信息 String url="jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf-8"; String user="root"; String password="123456789"; Connection connection = DriverManager.getConnection(url,user,password); connection.close(); }catch (Exception e){ e.printStackTrace(); } System.out.println("Hello world!"); } }
-
-
Statement類
用於執行靜態SQL語句並返回其生成的結果的對象。一些常用方法:-
close()
立即釋放此 Statement對象的資料庫和JDBC資源,而不是等待它自動關閉時發生。 -
executeUpdate(String sql)
執行給定的SQL語句,這可能是 INSERT , UPDATE ,或 DELETE語句,或者不返回任何內容,如SQL DDL語句的SQL語句。
package com.example.aji; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; public class Main { public static void main(String[] args) { try { Class.forName("com.mysql.cj.jdbc.Driver"); //mysql資料庫相關信息 String url="jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf-8"; String user="root"; String password="123456789"; Connection connection = DriverManager.getConnection(url,user,password); Statement statement = connection.createStatement(); String updateSql="CREATE TABLE `t_person` (\n" + " `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵',\n" + " `name` varchar(30) NOT NULL COMMENT '姓名',\n" + " `birthdate` datetime NOT NULL COMMENT '出生日期',\n" + " PRIMARY KEY (`id`)\n" + ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"; int result = statement.executeUpdate(updateSql); System.out.println(result); String insertSql="insert into t_person(name,birthdate) values('aji',now()),('aji',now())"; result = statement.executeUpdate(insertSql); System.out.println(result); statement.close(); connection.close(); }catch (Exception e){ e.printStackTrace(); } System.out.println("Hello world!"); } }
- executeQuery(String sql)
執行給定的SQL語句,該語句返回單個 ResultSet對象。
package com.example.aji; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; import java.sql.ResultSet; public class Main { public static void main(String[] args) { try { Class.forName("com.mysql.cj.jdbc.Driver"); //mysql資料庫相關信息 String url="jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf-8"; String user="root"; String password="123456789"; Connection connection = DriverManager.getConnection(url,user,password); Statement statement = connection.createStatement(); String querySql="select * from t_person"; ResultSet resultSet = statement.executeQuery(querySql); //列印查詢結果 while (resultSet.next()) { System.out.print(resultSet.getInt("id")); System.out.print(resultSet.getString("name")); System.out.println(resultSet.getDate("birthdate")); } resultSet.close(); statement.close(); connection.close(); }catch (Exception e){ e.printStackTrace(); } System.out.println("Hello world!"); } }
- execute(String sql)
執行給定的SQL語句並返回boolean值
package com.example.aji; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; import java.sql.ResultSet; public class Main { public static void main(String[] args) { try { Class.forName("com.mysql.cj.jdbc.Driver"); //mysql資料庫相關信息 String url="jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf-8"; String user="root"; String password="123456789"; Connection connection = DriverManager.getConnection(url,user,password); Statement statement = connection.createStatement(); String querySql="select * from t_person"; ResultSet resultSet = statement.executeQuery(querySql); boolean execute = statement.execute(querySql); //列印查詢結果 System.out.println(execute); resultSet.close(); statement.close(); connection.close(); }catch (Exception e){ e.printStackTrace(); } System.out.println("Hello world!"); } }
-
-
ResultSet類
表示資料庫結果集的數據表,通常通過執行查詢資料庫的語句生成。一些常用方法:-
close()
立即釋放此 Statement對象的資料庫和JDBC資源,而不是等待它自動關閉時發生。 -
next()
將游標從當前位置向前移動一行。
package com.example.aji; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; import java.sql.ResultSet; public class Main { public static void main(String[] args) { try { Class.forName("com.mysql.cj.jdbc.Driver"); //mysql資料庫相關信息 String url="jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf-8"; String user="root"; String password="123456789"; Connection connection = DriverManager.getConnection(url,user,password); Statement statement = connection.createStatement(); String querySql="select * from t_person"; ResultSet resultSet = statement.executeQuery(querySql); boolean execute = statement.execute(querySql); //列印查詢結果 System.out.println(execute); resultSet.close(); statement.close(); connection.close(); }catch (Exception e){ e.printStackTrace(); } System.out.println("Hello world!"); } }
- getInt(String columnLabel)
以Java編程語言中 int此 ResultSet對象的當前行中指定列的值。
package com.example.aji; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; import java.sql.ResultSet; public class Main { public static void main(String[] args) { try { Class.forName("com.mysql.cj.jdbc.Driver"); //mysql資料庫相關信息 String url="jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf-8"; String user="root"; String password="123456789"; Connection connection = DriverManager.getConnection(url,user,password); Statement statement = connection.createStatement(); String querySql="select * from t_person"; ResultSet resultSet = statement.executeQuery(querySql); boolean execute = statement.execute(querySql); //列印查詢結果 System.out.println(execute); resultSet.close(); statement.close(); connection.close(); }catch (Exception e){ e.printStackTrace(); } System.out.println("Hello world!"); } }
-