1、經常使用JDBC APIjava
在java.sql包中包含體現JDBC基本功能的若干接口和類:mysql
1.Driver 接口:表明驅動程序程序員
2.DriverManager 類:驅動程序管理員sql
3.Connection 接口:表明數據庫鏈接數據庫
4.Statement 、PreparedStatement、CallableStatement 接口:表明數據庫操做對象oracle
5.ResultSet 接口:表明結果集sqlserver
6.DatabaseMetadata、ResultSetMetadata接口:表明元數據學習
7.Types 類:表明JDBC類型測試
===============================================================================url
2、若干API的具體說明
Statement和 PreparedStatement ------SQL語句執行接口
Statement 接口表明了一個數據庫的狀態,再向數據庫發送相應的SQL語句時,都須要建立Statement 接口或者PreparedStatement 接口。
Statement 主要用於操做不帶參數的SQL語句,好比增、刪、改。
PreparedStatement:預編譯的Statement接口
第一步:經過鏈接得到PreparedStatement 接口對象,用帶佔位符(?)的sql語句構造。
PreparedStatement ps=con.praperedStatement("select * from test where id=?");
第二步:設置參數
ps.setString(1,"5");
第三步:執行sql語句
rs= ps.executeQuery();
Statement 發送完整的sql語句到數據庫不是直接執行,而是先編譯、後運行。
PreparedStatement 先發送帶參數的sql語句,在發送一組參數值。
若是是同構的sql語句,則PreparedStatement 效率高。對於異構的sql語句,二者效率差很少。
同構: 兩個sql語句可編譯的部分是相同的,只有參數值不一樣。
異構: 兩個sql語句的格式是不一樣的。
注意點:
1.使用預編譯的Statement (即PreparedStatement )編譯多條sql語句一塊兒執行。
2.能夠跨數據庫使用,編寫通用程序。
3.能用預編譯時儘可能用預編譯。
ResultSet接口:
ResultSet接口是查詢結果集接口,它對返回的結果集進行處理。ResultSet是程序員進行JDBC操做的必須接口。
ResultSetMetaData----元數據操做接口:
ResultSetMetaData 是對元數據進行操做的接口,能夠實現不少高級功能。Hibernate運行數據庫的操做,大可能是經過此接口。能夠認爲,此接口是SQL查詢語言的一種反射機制。ResultSetMetaData 能夠經過數據的形式,來遍歷數據庫各個字段的屬性。對於開發者來講,此機制意義重大。
JDBC經過元數據(MetaData)來獲取具體的表相關的信息,例如,能夠查詢數據庫中有哪些表、標有哪些字段、字段的屬性等。MetaData 經過一系列的getXXX 將這些信息返回給咱們。
MetaData元數據包括 數據庫源數據DatabaseMetadata 和 結果集元數據ResultSetMetaData 。
數據庫源數據DatabaseMetadata: 使用connection.getMetaData()得到了關於數據庫總體的元數據信息。
結果集元數據ResultSetMetaData: resultSet.getDataMeta得到的比較重要的是表的列名、列的屬性等信息。
結果集元數據對象: ResultSetMetaData meta = rs.getDataMeta();
字段個數:meta.getColumnCount();
字段名字:meta.getColumnName();
字段JDBC類型:meta.getColumnType();
字段數據庫類型:meta.getColumnTypeName();
數據庫元數據對象: DatabaseMetaData meta = con.getMetaData();
數據庫名:meta.getDatabaseProductName();
數據庫版本號:meta.getDatabaseProductVersion();
數據庫驅動名:meta.getDriverName();
數據庫驅動版本號:meta.getDriverVersion();
數據庫URL:meta.getURL();
該鏈接的數據庫登陸名:meta.getUserName();
3、JDBC應用程序的基本步驟:
1.註冊驅動
2.創建數據庫鏈接
3.建立數據庫操做對象
4.執行SQL
5.處理結果集
6.關閉JDBC對象
1.註冊一個驅動driver
註冊驅動程序的三種方式:
方式一:Class.forName("Oracle.jdbc.driver.OracleDriver");
方式二:Driver driver=new Oracle.jdbc.driver.OracleDriver();
DriverManager.registerDriver(driver);
方式三:編譯時在虛擬機中加載驅動
javac -D jdbc.drivers = oracle.jabc.driver.OracleDriver xxx.java
java -D jabc.drivers = 驅動全名 類名
使用系統屬性名,加載驅動 -D表示爲系統屬性賦值
附:mysql 的Driver全名:com.mysql.jdbc.Driver
sqlserver 的Driver全名:com.microsoft.jdbc.sqlserver.SQLServerDriver
2.創建鏈接
conn=DriverManager.getConnection ("jdbc:oracle.thin:@192.168.0.254:1521/test","username","password"); 上面括號中放的是:oracle自協議+@+ip:port / 數據庫實例名,數據庫用戶名,用戶密碼。 mysql url寫法:jdbc:mysql://192.168.254:3306/test
3.得到一個Statement對象
sta = conn.createStatement();
4.經過Statement執行sql語句
sta.excuteQuery(sql);//返回一個查詢結果集
sta.executeUpdate(sql);//返回值爲 int 型,表示影響記錄的條數
將sql語句經過鏈接發送到數據庫中執行,以實現對數據庫的操做。
5.處理結果集
使用Connection對象得到一個Stagement,Statement中的executeQuery(String sql)方法可使用select語句查詢,並返回一個結果集 ResultSet 。經過遍歷這個結果集,能夠得到select語句的查詢結果。ResultSet的next()方法會操做一個遊標從第一條記錄開始讀取,直到最後一天記 錄。 executeUpdate(String sql)方法用於執行 DDL /DML 語句,好比update,delete等。
只有select語句纔有返回結果集。
例:
Statement sta = con.createStatement(); //建立statement對象 String sql = " insert into test(id,name) values(1"+" " " "+"king"+" "" "+") "; sta.executeUpdate(sql); //執行sql語句 String sql = "select * from test"; ReslutSet rs = sta.executeQuery(sql);//執行sql語句後有結果集 //遍歷處理結果集 while(rs.next()){ System.out.println(rs.getInt("id")); System.out.println(rs.getString("name")); }
6.關閉數據庫鏈接(釋放資源)
調用close()方法: rs.close(); sta.close(); conn.close(); ResultSet 、Statement 和Connetction是依次依賴的。
注意:要按先 ResultSet ,再Statement,最後Connetction的順序關閉資源。因ResultSet和Statement在鏈接的狀況下才能使用,因此在連使用束 後可能還有其餘的statement還在鏈接,因此不能先關閉Connection。
往期更多精彩我已收錄在個人專區,裏面收錄了Java學習路線圖、Java從一無所知到入門、Java基本語法、Javase語法基礎測試,Java從入門到精通等zl,戳我去聆取,或私信我回復「」Java「」!!!