【1】什么是JDBC貌矿?? ? JDBC有什么用雪侥?
JDBC(Java DataBase Connectivity,java數(shù)據(jù)庫連接)是一種用于執(zhí)行SQL語句的Java API哪替,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問抒痒,它由一組用Java語言編寫的類和接口組成件缸。JDBC提供了一種基準(zhǔn)期犬,據(jù)此可以構(gòu)建更高級的工具和接口茧痕,使數(shù)據(jù)庫開發(fā)人員能夠編寫數(shù)據(jù)庫應(yīng)用程序句葵。
簡單地說丹墨,JDBC 可做三件事:與數(shù)據(jù)庫建立連接廊遍、發(fā)送 操作數(shù)據(jù)庫的語句并處理結(jié)果。
【2】JDBC的編碼步驟
1)贩挣、加載驅(qū)動程序
? ? ? ? ? ? 驅(qū)動程序:即是JDBC這組接口的實現(xiàn)類和其他功能類
? ? ? ? ? ? 由數(shù)據(jù)庫廠商提供
? ? ? ? ? ? 導(dǎo)入mysql jar包
? ? ? ? ? ? 創(chuàng)建java項目喉前,在項目中創(chuàng)建名為lib的目錄
? ? ? lib表示存放項目中第三方提供的jar
? ? ? ? ? ? 將lib中的jar 配置到項目的類路徑下
? ? 2)、創(chuàng)建連接
? ? ? DriverManager 驅(qū)動管理器
? ? ? DriverManager提供一個靜態(tài)方法王财,建立與數(shù)據(jù)庫的連接
? ? ? Connection getConnection(String url,String user,String password);
? ? ? url:連接數(shù)據(jù)庫的地址
? ? ? jdbc:mysql://ip:3306/數(shù)據(jù)庫名
? ? ? jdbc:主協(xié)議
? ? ? mysql:子協(xié)議
? ? ? ip:遠(yuǎn)程其他機器卵迂,就是具體的IP, 如果IP為本機:127.0.0.1或localhost
? ? ? ?useSSL=true :為網(wǎng)絡(luò)通信提供安全及數(shù)據(jù)完整性的一種安全協(xié)議 ,默認(rèn)為false
? ? ? user:賬號
? ? ? password:密碼
? ? 3)绒净、發(fā)送SQL語句并執(zhí)行
? ? ? Statement:表示語句對象
? ? ? int executeUpdate(String sql);
? ? ? ? ? ? 用來發(fā)送insert,update,delete語句见咒,返回
? ? ? ? ? ? 影響數(shù)據(jù)庫表的記錄數(shù)
? ? ? ResultSet executeQuery(String sql);
? ? ? ? ? ? 用來發(fā)送select語句,返回結(jié)果集
? ? 4)挂疆、關(guān)閉連接
? ? ? ? ? ? 數(shù)據(jù)庫軟件同時支持的連接數(shù)是有限的,
? ? ? ? ? ? 每一個連接都占用著數(shù)據(jù)庫有限的資源论颅,
? ? ? ? ? ? 開啟連接,程序執(zhí)行結(jié)束之后必須及時
? ? ? ? ? ? 釋放資源囱嫩,關(guān)閉連接恃疯。
? ? ? close();關(guān)閉語句對象墨闲,關(guān)閉連接對象
API:
? DriverManager:類今妄,驅(qū)動管理器
? Connection getConnection(url,user,password);
? Connection:連接對象的接口
? Statement createStatement();
? Statement:語句對象的接口
? int executeUpdate(String sql);
? 發(fā)送增刪改SQL語句
? ResultSet executeQuery(String sql);
? 發(fā)送查詢SQL語句