註冊載入驅動driver。也就是強制類載入:其註冊載入JDBC驅動有三種方法: java
方法一:Class.forName(DriverName); 當中DriverName=Driver包名。Driver類名;
Oracle的DriverName=「oracle.jdbc.driver.OracleDriver「。
SQLServer的DriverName=「com.microsoft.jdbc.sqlserver.SQLServerDriver「。
方法三:直接建立一個驅動對象:new oracle.jdbc.driver.OracleDriver()。mysql
MySql的DriverName=「com.mysql.jdbc.Driver「; sql
方法二:Class.forName(DriverName).newInstance(); 數據庫
代碼完畢兩個功能:第一,把驅動程序載入到內存裏;第二。把當前載入的驅動程序本身主動去DriverManager那註冊,DriverManager是JDBC規範中惟一的Java類。編程
要鏈接數據庫,需要向java.sql.DriverManager請求並得到Connection對象,該對象就表明一個數據庫的鏈接。
使用DriverManager的getConnectin(Stringurl , String username , String password )方法傳入指定的欲鏈接的數據庫的路徑、數據庫的username與password來得到。
好比://鏈接MySql數據庫,username和password都是root
String url ="jdbc:mysql://localhost:3306/test";
String username = "root";
String password = "root" ;
try{
Connection con =DriverManager.getConnection(url ,username , password ) ;
}catch(SQLException se){
System.out.println("數據庫鏈接失敗!");
se.printStackTrace();
}oracle
一、DriverManager在JDBC規範中是類而不是接口。它是一個服務類,用於管理JDBC驅動程序,提供getConnection()方法創建應用程序與數據庫的鏈接。當JDBC驅動程序載入到內存時,會本身主動向DriverManager註冊。此行代碼發出鏈接請求,DriverManager類就會用註冊的JDBC驅動程序來建立到數據庫的鏈接。sqlserver
二、DriverManager.getConnection()是個靜態方法。url
三、DriverManager在java.sql包中。當咱們調用sql包裏不論什麼一個類(包含接口)的不論什麼一個方法時都會報一個編譯時異常SQLException。這裏咱們使用一個try塊後跟多個catch塊解決。spa
四、方法參數URL:統一資源定位符。咱們鏈接的數據庫在哪臺主機上(這個經過ip地址肯定),這個主機有可能裝了好幾種數據庫軟件,比方SqlServer,mysql,oracle,那麼咱們鏈接哪一個數據庫要經過port號來肯定。port號又稱服務號監聽號,sqlserver爲1433,mysql爲3306,oracle爲1521:。下表列出常常使用數據庫軟件的url寫法:server
Oracle: jdbc:oracle:thin:@ip:1521:dbName;
MySql:jdbc:mysql://ip:3306:dbName;
SQLServer:jdbc:sqlserver://ip:1443;databaseName=dbName;
五、當使用本機ip地址鏈接時需要關閉防火牆。不然鏈接不上,使用localhost或127.0.0.1則不用關閉防火牆。
一、運行靜態SQL語句。一般經過Statement實例實現。
二、運行動態SQL語句。一般經過PreparedStatement實例實現。
三、運行數據庫存儲過程。一般經過CallableStatement實例實現。
詳細的實現方式:
Statement stmt = con.createStatement();
PreparedStatement pstmt=con.prepareStatement(sql);
CallableStatement cstmt =con.prepareCall("{CALLdemoSp(? , ?
)}") ;
Statement接口提供了三種運行SQL語句的方法:executeQuery、executeUpdate 和execute
一、ResultSet executeQuery(String sqlString):運行查詢數據庫的SQL語句。返回一個結果集(ResultSet)對象。
二、int executeUpdate(String sqlString):用於運行INSERT、UPDATE或DELETE語句以及SQL DDL語句,如:CREATETABLE和DROP TABLE等
三、execute(sqlString):用於運行返回多個結果集、多個更新計數或兩者組合的 語句。詳細實現的代碼:
ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ; int rows = stmt.executeUpdate("INSERTINTO ...") ; boolean flag =stmt.execute(String sql) ;
一、運行更新返回的是本次操做影響到的記錄數。
二、運行查詢返回的結果是一個ResultSet對象。
ResultSet包括符合SQL語句中條件的所有行。並且它經過一套get方法提供了對這些行中數據的訪問。
使用結果集(ResultSet)對象的訪問方法獲取數據:
while(rs.next()){
String name = rs.getString("name") ;
String pass = rs.getString(1) ; // 此方法比較高效
}
(列是從左到右編號的,並且從列1開始)
操做完畢之後要把所有使用的JDBC對象全都關閉,以釋放JDBC資源。關閉順序和聲明順序相反:
一、關閉記錄集
二、關閉聲明
三、關閉鏈接對象
if(rs != null){ // 關閉記錄集
try{
rs.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(stmt != null){ // 關閉聲明
try{
stmt.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(conn != null){ // 關閉鏈接對象
try{
conn.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}