1.JDBC全稱:Java database connectivity,Java數據庫鏈接。程序員
(1) JDBC是一種用於執行SQL語句的Java API,爲多種關係數據庫提供多種統一訪問,由一組Java語言編寫的類和接口組成。sql
(2) 程序員JDBC API程序能夠訪問全部的數據庫。數據庫
(3) Java語言和JDBC結合,程序員沒必要爲不一樣的平臺寫不一樣的應用程序,只需寫一遍程序就可使它在任意平臺上運行。安全
(4) JDBC簡單講作三件事:與數據庫創建鏈接,發送、處理數據庫語句並處理結果。oracle
3.加載Oracle的JDBC驅動程序接口
Class.forName(「Oracle.jdbc.driver.OracleDriver」)資源
4.execute、executeQuery、executeUpdate字符串
executeQuery:返回結果集(ResultSet),一般用於select語句。get
executeUpdate:返回此操做影響的行數(int),一般用於insert,update,delete語句。it
execute返回Boolean值, 一般用於insert,update,delete語句。
5.ResultSet處理的典型代碼:
while(rs.next()){
String ename = rs.getString(1);
int empno = rs.getInt(「empno」);
}
6.JDBC記載4大步驟
(1)加載一個Driver驅動;
(2)建立數據庫鏈接(Connection)
(3)建立SQL命令發佈器Statement,經過statement發送命令並獲得結果。
(4)處理結果(select語句和resultset),處理完畢後關閉數據庫資源。
7.SQL注入攻擊
好比JDBC完成用戶的登陸功能
(1) SQL語句採用了字符串拼接技術String sql = 「select * from t_user where userno= ‘」+userno+」’ and password =+upwd+」’」;
(2) 繼而使用SQL命令發佈器發送SQL命令並獲得結果:
Stmt.executeQuery(sql);
(3) 如輸入:userno = 「 abc:,password =」 abc ‘or’ 1’ = 1」;
因而上述SQL字符串就變爲sql = 「select * from t_user where userno =’ abc’ and password =’ abc’ ‘or’ 1’ = ‘ 1」;
此語句的用戶名和密碼並不正確,可是仍然能訪問數據表,因此存在風險,這就是所謂的SQL注入攻擊。
(4) 解決方案:採用statement的子接口PreparedStatement來實現。
*1.可讀性強不繁瑣
*2.安全
*3屢次執行同一條SQL語句,效率高
例:
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try{
Class.forName(「oracle.jdbc.driver.OracleDriver」);
conn = DriverManager.getConnection(「jdbc:oracle:thin:@localhost:1521:orcl」,」scott」,」tiger」);
stmt = conn.createStatement();
String sql = 「select * from emp」;
rs = stmt.executeQuery(sql);