JDBC連線資料庫?
一、基本概念
1.JDBC(Java DataBase Connectivity) JDBC就是Java連線資料庫並進行相應操作的 API,這些API主要由核心的介面和少量的類組成,據此可以構建更高階的工具和介面,使資料庫開發人員能夠編寫資料庫應用程式。
2.資料庫驅動 要想在Java程式中方位資料庫,必須通過驅動程式,資料庫驅動就是 各家資料庫廠商 根具JDBC的規則 提供的JDBC介面的一系列實現,就是Connection等介面的實現類的jar檔案。
二、基本介面
1.Driver介面 Driver介面由資料庫廠家提供,在程式設計中直接使用即可,要連線資料庫,必須先裝載特定廠商的資料庫驅動程式如: 裝載MySql驅動:Class.forName(“com.mysql.jdbc.Driver”); 裝載Oracle驅動:Class.forName(“oracle.jdbc.driver.OracleDriver”);
2.Connection介面 Connection 與特定資料庫的連線,相當於橋樑的功能,在連線上下文中執行sql語句並返回結果。DriverManager.getConnection(url, user, password)方法建立在JDBC URL中定義的資料庫Connection連線上。
MySql資料庫:Connection conn = DriverManager.getConnection("jdbc:mysql://host:port/database", "user", "password"); Oracle資料庫:Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@host:port:database", "user", "password"); SqlServer資料庫:Connection conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://host:port; DatabaseName=database", "user", "password");
常用方法: createStatement():建立向資料庫傳送sql的statement物件 prepareStatement(sql) :建立向資料庫傳送預編譯sql的PrepareSatement物件 prepareCall(sql):建立執行儲存過程的callableStatement物件 setAutoCommit(boolean autoCommit):設定事務是否自動提交 commit() :在連結上提交事 3.Statement介面
用於執行靜態SQL語句並返回它所生成結果的物件。
三種Statement類:
Statement:由createStatement建立,傳送簡單的SQL語句(不帶引數) PreparedStatement :繼承自Statement介面,由preparedStatement建立,用於傳送含有一個或多個引數的SQL語句 CallableStatement:繼承自PreparedStatement介面,由方法prepareCall建立,用於呼叫儲存過程
常用Statement方法: execute(String sql):執行語句,返回是否有結果集 executeQuery(String sql):執行select語句,返回ResultSet結果集 executeUpdate(String sql):執行insert/update/delete操作,返回更新的行數 addBatch(String sql) :把多條sql語句放到一個批處理中 executeBatch():向資料庫傳送一批sql語句執行
4.ResultSet介面 ResultSet提供檢索不同型別欄位的方法, 常用方法: getString(int index)、getString(String columnName):獲得在資料庫裡是varchar、char等型別的資料物件 getFloat(int index)、getFloat(String columnName):獲得在資料庫裡是Float型別的資料物件 getDate(int index)、getDate(String columnName):獲得在資料庫裡是Date型別的資料。 getBoolean(int index)、getBoolean(String columnName):獲得在資料庫裡是Boolean型別的資料 getObject(int index)、getObject(String columnName):獲取在資料庫裡任意型別的資料。 ResultSet還提供了對結果集進行滾動的方法: next():移動到下一行 Previous():移動到前一行 absolute(int row):移動到指定行 beforeFirst():移動resultSet的最前面。 afterLast() :移動到resultSet的最後面。 釋放資源:ResultSet → Statement → Connection
三、資料庫的連線步驟
step1:載入JDBC驅動(獲得許可) step2:建立資料庫連線Connection (建橋) step3:建立執行SQL的語句Statement(造車) step4:處理執行結果ResultSet(運輸) step5: 釋放資源(毀車拆橋)
1.註冊驅動 (只做一次) 方式一:Class.forName(“com.MySQL.jdbc.Driver”); 不會對具體的驅動類產生依賴,推薦 方式二:DriverManager.registerDriver(com.mysql.jdbc.Driver); 會造成DriverManager中產生兩個一樣的驅動,會對具體的驅動類產生依賴 2.建立連線
Connection conn = DriverManager.getConnection(url, user, password); URL用於標識資料庫地址,通過URL地址告訴JDBC程式連線哪個資料庫,URL規則: