一. JDBC介紹
Java Database Connectivity
MySQL Oracle SQLServer
為了簡化台猴,統(tǒng)一對數(shù)據(jù)庫的操作奕污,Java中定義了一套操作數(shù)據(jù)庫的規(guī)范薇正,JDBC
JDBC主要是通過接口實現(xiàn)的,組成JDBC的有兩個包
java.sql javax.sql
以上兩個包是在JavaSE中包含的
需要導(dǎo)入JDBC的實現(xiàn)類才可以使用浓冒,這個實現(xiàn)類不是SUN公司提供的,是有第三方數(shù)據(jù)庫提供商
來完成了
JDBC主要的接口和類:
Driver接口:連接數(shù)據(jù)庫的驅(qū)動API 反射 Class.forName("完整的類名"); 包名.類名
DriverManager類: 驅(qū)動管理類,負(fù)責(zé)驅(qū)動的注冊(加載),獲取數(shù)據(jù)庫連接
Statement接口:負(fù)責(zé)SQL語句的執(zhí)行
--PreparedStatement接口:負(fù)責(zé)SQL語句的預(yù)處理
ResultSet接口:處理查詢數(shù)據(jù)庫的結(jié)果集
獲取MySQL的JDBC JAR包
從官網(wǎng)獲燃园濉:
https://dev.mysql.com/downloads/connector/j/
把JDBC JAR導(dǎo)入到項目中:
1. 在項目目錄下創(chuàng)建libs目錄
2. 復(fù)制JAR粘貼到libs目錄下
3. 在jar包上右鍵->build path -> add to build path
二. 通過JDBC連接數(shù)據(jù)庫
1. 確定數(shù)據(jù)庫的URL 統(tǒng)一資源定位符
jdbc:mysql://localhost:3306/javaee1707
協(xié)議:子協(xié)議://ip:端口號/數(shù)據(jù)庫?參數(shù)
協(xié)議:JDBC總協(xié)議
子協(xié)議:目前使用的是連接MySQL數(shù)據(jù)庫的協(xié)議
ip:是數(shù)據(jù)庫服務(wù)器的IP地址,localhost表示本機(jī)的IP地址
端口號:3306 MySQL數(shù)據(jù)庫的默認(rèn)端口號吩屹,可以修改
數(shù)據(jù)庫:目前連接操作的數(shù)據(jù)庫時哪一個
參數(shù):useUnicode=true&characterEncoding=UTF-8
2. 連接數(shù)據(jù)庫需要用戶名和密碼
三. JDBC核心API
Driver接口:
--| connect(url, propertie);
url: JDBC連接數(shù)據(jù)庫(MySQL)URL
jdbc:mysql://localhost:3306/javaee1707?useSSL=true
propertie:
連接數(shù)據(jù)庫的屬性跪另,主要包含的是數(shù)據(jù)庫的用戶名和密碼
DriverManager類:
驅(qū)動管理類,用戶管理【加載/注冊】過的驅(qū)動程序
--| registerDriver(driver); 注冊驅(qū)動程序
--| Connection getConnection(url, user, password);
獲取一個數(shù)據(jù)庫的連接對象煤搜,需要的參數(shù)是存在JDBC協(xié)議的URL 數(shù)據(jù)庫用戶名 和 密碼
Connection接口:
--| Statement createStament(); 創(chuàng)建一個Statement的實現(xiàn)類對象
--| PreparedStatement preparedStatement(String sql);
獲取到一個PreparedStatement SQL語句預(yù)處理對象
--| CallableStatmenet preparedCall(String sql); 了解
Statement接口:
--| int executeUpdate(String sql); 執(zhí)行給定的SQL語句免绿,通常用來執(zhí)行DDL,DML擦盾,返回影響數(shù)據(jù)的行數(shù)
--| ResultSet executeQuery(String sql); 執(zhí)行給定的SQL語句 DQL 查詢語句嘲驾,返回數(shù)據(jù)結(jié)果集
PreparedStatement接口:
--| int executeUpdate(); 執(zhí)行預(yù)處理的SQL語句,通常用來執(zhí)行DDL迹卢,DML辽故,返回影響數(shù)據(jù)的行數(shù)
--| ResultSet executeQuery(); 執(zhí)行預(yù)處理的SQL語句 DQL 查詢語句,返回數(shù)據(jù)結(jié)果集
ResultSet接口:
查詢語句的數(shù)據(jù)結(jié)果集:
--| boolean next(); 得到當(dāng)前數(shù)據(jù)行婶希,并且光標(biāo)指向下一個數(shù)據(jù)行榕暇,如果沒有數(shù)據(jù)行,返回false
--| getXXX(String "字段名"); 獲取指定數(shù)據(jù)類型的字段數(shù)據(jù)