1 回答

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超3個(gè)贊
1) 加載數(shù)據(jù)庫(kù)驅(qū)動(dòng)
通常我們使用Class類(lèi)的forName()靜態(tài)方法來(lái)加載驅(qū)動(dòng)(由各個(gè)數(shù)據(jù)庫(kù)廠商自己實(shí)現(xiàn))
Class.forName("com.mysql.jdbc.Driver");
Class.forName("oracle.jdbc.driver.OracleDriver");
"com.mysql.jdbc.Driver"、"oracle.jdbc.driver.OracleDriver"代表了數(shù)據(jù)庫(kù)驅(qū)動(dòng)類(lèi)對(duì)應(yīng)的字符串
2) 通過(guò)DriverManager獲取數(shù)據(jù)庫(kù)連接
DriverManager.getConnection(String url, String user, String pass);
2.1) url: 數(shù)據(jù)庫(kù)連接字符串
2.1.1) Mysql
jdbc:mysql://hostname:port/databasename
2.1.2) Oracle
jdbc:oracle:thin:@hostname:port:databasename
2.2) user: 數(shù)據(jù)庫(kù)的系統(tǒng)用戶(hù)名
2.3) pass: 數(shù)據(jù)庫(kù)的系統(tǒng)密碼
3) 通過(guò)Connection對(duì)象創(chuàng)建Statement對(duì)象,Connection創(chuàng)建Statement對(duì)象的方法有如下3個(gè)
3.1) createStatement(String sql):創(chuàng)建基本的Statement對(duì)象
3.2) prepareStatement(String sql): 根據(jù)傳入的SQL語(yǔ)句創(chuàng)建預(yù)編譯的Statement對(duì)象
3.3) prepareCall(String sql): 根據(jù)傳入的SQL語(yǔ)句創(chuàng)建CallableStatement對(duì)象
4) 使用Statement執(zhí)行SQL語(yǔ)句
所有的Statement都有如下3個(gè)方法來(lái)執(zhí)行SQL語(yǔ)句
4.1) execute(): 可以執(zhí)行任何SQL語(yǔ)句,但比較麻煩
4.2) executeUpdate(): 主要用于執(zhí)行DML和DDL語(yǔ)句。執(zhí)行DML語(yǔ)句返回受SQL影響的行數(shù),執(zhí)行DDL語(yǔ)句返回0
4.3) executeQuery(): 只能執(zhí)行查詢(xún)語(yǔ)句,執(zhí)行后返回代表查詢(xún)結(jié)果的ResultSet對(duì)象
5) 操作結(jié)果集
如果執(zhí)行的SQL語(yǔ)句是查詢(xún)語(yǔ)句,則執(zhí)行結(jié)果將返回一個(gè)ResultSet對(duì)象,該對(duì)象里保存了SQL語(yǔ)句查詢(xún)的結(jié)果。程序可以通過(guò)操作該ResultSet對(duì)象來(lái)取出查詢(xún)結(jié)果。ResultSet對(duì)象主要提供了如
下方法
5.1) 移動(dòng)記錄指針的方法
5.1.1) next()
5.1.2) previous()
5.1.3) first()
5.1.4) last()
5.1.5) beforeFirst()
5.1.6) afterLast()
5.1.7) absolute()
5.2) 獲取指針指向的某行的"特定的列值"
5.2.1) getInt()
5.2.2) getString()
...
該方法既可以使用列索引作為參數(shù),也可以使用列名作為參數(shù)
6) 回收數(shù)據(jù)庫(kù)資源
包括關(guān)閉ResultSet、Statement、Connection等資源
添加回答
舉報(bào)