Java數據庫編程
原文 http://www.cnblogs.com/gzyfj/p/4492281.html
JDBC是java中提供的一套數據庫編程API,它定義了一套用來訪問數據庫的標準Java類庫(位于java.sql和javax.sql 包中)。通過JDBC,我們可以用java編寫程序,實現與特定的數據庫進行連接,向數據庫發送SQL語句,實現對數據庫的特定操作,并對數據庫返回的結果進行處理。
JDBC編程步驟:
步驟一:根據應用程序所用的數據庫,選擇JDBC驅動程序類型;
步驟二:連接到數據庫,得到Connection對象;
步驟三:通過Connection創建Statement對象;
步驟四:使用Statement對象提交SQL語句;
步驟五:操作結果集;
步驟六:回收數據庫資源。
JDBC驅動程序分為四個類型:
JDBC-ODBC Bridge: JDBC-ODBC橋 由SUN公司提供通用的驅動,能訪問各種數據庫,但效率極低。
Native-API partly-Java driver: 本地庫Java驅動程序 執行效率高,客戶端必須安裝本地驅動,維護不方便。
net-protocal all-Java driver(JDBC Proxy) 網絡協議純Java驅動程序(通用) 客戶端不必安裝本地庫,使用方便,但性能相對較低。
native-protocal all-Java driver: 本地協議完全Java驅動程序 將JDBC調用轉化為特定數據庫的網絡協議,效率很高。
加載驅動,通過調用Class類的靜態方法forName()顯式地加載驅動:例如:
Class.forName(驅動程序類);
下面我們來看一段代碼,以便我們了解如何去建立數據庫連接:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; /**
- JDBC測試
@author Administrator / public class JDBCDemo3 { public static void main(String[] args) { Connection conn = null; // 連接對象 Statement stmt = null; // Statement對象 / 加載驅動 / try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } / 創建Connection對象 / // 連接字符串 String url = "jdbc:mysql://localhost:3306/jdbc"; // 用戶名 String user = "root"; // 密碼 String password = "123456"; try { // 創建連接 conn = DriverManager.getConnection(url, user, password); } catch (SQLException e) { e.printStackTrace(); }
/ 執行的是添加多條數據到數據庫中去 / try { stmt = conn.createStatement(); stmt.addBatch("INSERT INTO users VALUES(5, 'tom1', '000000')"); stmt.addBatch("INSERT INTO users VALUES(6, 'tom2', '000000')"); stmt.addBatch("INSERT INTO users VALUES(7, 'tom3', '789000')"); stmt.addBatch("INSERT INTO users VALUES(8, 'tom4', '456000')"); stmt.addBatch("INSERT INTO users VALUES(9, 'tom5', '123')"); stmt.executeBatch(); } catch (SQLException e1) { e1.printStackTrace(); }
/ 釋放資源:必做 / try { if (stmt != null)stmt.close();
} catch (SQLException e) { e.printStackTrace(); } finally { if (conn != null)
try { conn.close(); } catch (SQLException e) { e.printStackTrace(); }
} } }</pre>