(相關資料整合)
一、整體來說,這是一個連接oracle數據庫的一個連接字符串,指明連接數據庫的URL,可理解為三部分-〉協議(jdbc):子協議(oracle:thin):數據源標識(@localhost:1521:orcl)
二、jdbc:Java Database Connectivity,即Java數據庫連接,實質是一個Java API,可以為多種關系數據庫提供統一訪問,它由一組用Java語言編寫的類和接口組成。JDBC可做3件事情:1、連接數據庫 2、發送SQL語句 3、(從數據庫)接收處理結果。從連接字符串角度講,指出連接數據庫用的是JDBC的方式。
二、oracle:thin
指出連接的是oracle數據庫,同時連接方式為thin方式,即瘦方式,不需要客戶端的方式。與之對的另一種連接方式為胖方式:cli,這種方式需要安裝客戶端。
三、@localhost:1521:orcl
localhost 數據庫的地址,非本地時可按為數據庫的IP地址;
1521 orcal數據庫默認的監聽端口,可換為其他監聽端口;
orcl orcal數據庫默認的一個實例,可按為其他實例名。
四、擴展一下
java連接其他數據庫的連接字符串
-----MySQL-----
driverString = com.mysql.jdbc.Driver
dataBaseUrl = jdbc:mysql://127.0.0.1:3306/scutcs
-----ms sql 2000-----
driverString = com.microsoft.jdbc.sqlserver.SQLServerDriver
dataBaseUrl = jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=Demo
-----ms sql 2005-----
driverString = com.microsoft.sqlserver.jdbc.SQLServerDriver
dataBaseUrl = jdbc:sqlserver://localhost:1433;DatabaseName=Demo
-----ms sql 第三方統一方式-----
driverString= net.sourceforge.jtds.jdbc.Driver
dataBaseUrl = jdbc:jtds:sqlserver://localhost:1433;DatabaseName=Demo
這種方式需要第三方包:jtds-1.2.jar;
-----DB2-----
driverString = com.ibm.db2.jcc.DB2Driver
dataBaseUrl = jdbc:db2://localhost:50000/toolsdb
五、連接數據庫的七個步驟
1、加載驅動
Class.forName(driverString);
2、建立連接
Connection conn = DriverManager.getConnection(dataBaseUrl , username , password );
3、創建聲明
a.執行靜態SQL語句,一般通過Statement實例實現,eg: Statement stmt = conn.createStatement() ;
b.執行動態SQL語句,一般通過PreparedStatement實例實現,eg: PreparedStatement pstmt = conn.prepareStatement(sql);
c.執行存儲過程,一般通過CallableStatement實例實現,eg: CallableStatement cstmt = conn.prepareCall("{CALL demoSp(? , ?)}") ;
4、執行SQL
Statement接口提供了三種執行SQL語句的方法:executeQuery 、executeUpdate 和execute
a. ResultSet executeQuery(String sqlString):執行查詢數據庫的SQL語句,返回一個結果集(ResultSet)對象。
具體語句為:ResultSet rs = stmt.executeQuery("SELECT * FROM ...");
b. int executeUpdate(String sqlString):用於執行INSERT、UPDATE或DELETE語句以及SQL DDL語句,如:CREATE TABLE和DROP TABLE等
具體語句為:int rows = stmt.executeUpdate("INSERT INTO ...") ;
c. execute(String sql):用於執行返回多個結果集、多個更新計數或二者組合的語句。
具體實現的代碼:boolean flag = stmt.execute(sqlString)
5、處理結果
結果一:執行查詢返回的是ResultSet對象(記錄集)
結果二:執行更新返回的是本次操作影響的記錄數。
訪問結果的方法:
while(rs.next()){
String name = rs.getString("name") ;
String pwds = rs.getString(1) ; //本方法高效
}
6、關閉資源
反序關閉,先內后外。記錄集-聲明-連接
if(rs != null){
try{
rs.close();
}catch(SQLException e) {
e.printStackTrace() ; e.printStackTrace();
}
} ...