JDBC part1 JDBC概述 jdbc是一種用於執行SQL語句的Java API,通過這套API可以訪問各種關係資料庫,例如;Oracle,MySql,SQLServer等. JDBC驅動程式是各個資料庫廠家根據JDBC的W3C規範製作的JDBC實現類. oracle 驅動地址:F:\Orac ...
JDBC part1
JDBC概述
jdbc是一種用於執行SQL語句的Java API,通過這套API可以訪問各種關係資料庫,例如;Oracle,MySql,SQLServer等.
- JDBC驅動程式是各個資料庫廠家根據JDBC的W3C規範製作的JDBC實現類.
- oracle 驅動地址:F:\Oracle\product\10.2.0\db_1\jdbc\lib->class12.jar
- 將jar包直接扔到項目下,然後右鍵add buildpath.
JDBC API
- DricerManager : 管理驅動程式的類
- Connection : 驅動提供的與資料庫連接的對話
- Statement : 執行sql語句並返回它所生成的結果的對象
- PreparedStatement : 表示預編譯的SQL語句的對象
- ResultSet : 查詢的結果集
- 如果要定義private final static 常量,就要將定義語句放在類下,方法外.
- java.sql.SQLException: Io 異常: The Network Adapter could not establish the connection 這是因為資料庫還沒有啟動= =!
JDBC步驟
1.註冊驅動程式 : Class.forName("oracle.jdbc.OracleDriver");
2.獲取資料庫連接 : Connection conn = DriverManager.getConnection(url,username,password);
其中,url = "jdbc:oracle:thin:@localhost:1521:orcl";
url是資料庫廠商自己定義的,username = "scott";資料庫用戶名,password="資料庫用戶登錄密碼";
3.寫sql語句 String sql = "select * from copy_emp;"
String name = "Steven";
String sql = "select * from copy_emp where first_name = "+"'"+name+"'";
//在oracle中,String類型需要使用''單引號表示,所以java中就需要用"'"表示一個分號.
4.創建發送對象. Statement stmt = conn.createStatement();
5.發送sql語句 ResultSet stmt.executeQuery(sql);
6.處理結果集
while(rs.next()) {
System.out.println(rs.getString(1)+rs.getString(2)
+rs.getString(3)+rs.getInt("salary"));
}
其中,rs.getString(int),括弧中位int類型時,表示的是第int列的數據,如果rs.getString(String),括弧中位String類型時,表示的是對應的列名.
7.關閉資源,後打開的先關閉
執行查詢語句,使用的是executeQuery();返回的是結果集 ;
執行update,insert,delete使用的是executeUpdate();返回的是數字,代表影響行數。
public class SelectJDBC {
private final static String DriverName = "oracle.jdbc.OracleDriver";
private final static String URL = "jdbc:oracle:thin:@localhost:1521:orcl";
private final static String USERNAME = "scott";
private final static String PASSWORD = "luogg";
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1.註ce驅動
Class.forName(DriverName);
//2.獲取連接
Connection conn = DriverManager.getConnection(URL,USERNAME,PASSWORD);
//3.寫sql語句
//String name = "Steven";
//String sql = "select * from copy_emp where department_id=100";
//String sql = "select * from copy_emp where first_name = "+"'"+name+"'";
//System.out.println(sql);
//String sql1 = "select * from copy_emp where first_name = "+"'洛'";
String startTime = "1994-01-01";
String endTime = "2000-01-01";
String sql = "select * from copy_emp where hire_date between to_date("+"'"+startTime+"'"+","+"'"+"yyyy-mm-dd"+"'"+")"+"and to_date("+"'"+endTime+"'"+","+"'"+"yyyy-mm-dd"+"'"+")";
System.out.println(sql);
//4.創建發送對象
Statement stmt = conn.createStatement();
//5.發送sql語句
ResultSet rs = stmt.executeQuery(sql);
//6.處理結果集
while(rs.next()) {
System.out.println(rs.getString("first_name")+" "+
rs.getString("salary"));
}
//7.關閉資源
rs.close();
stmt.close();
conn.close();
}