1.裝載驅(qū)動器 Class.forName(“驅(qū)動器類名稱”); access驅(qū)動器類名稱:sun.jdbc.odb.JdbcOdbcDriver Class.forName(“sun.jdbc.odb.JdbcOdbcDriver”);
2.建立與數(shù)據(jù)庫的連接 Connection con = DriverManager.getConnection(“jdbc:子協(xié)議:子名稱”,”數(shù)據(jù)庫名,密碼”); Connection con =DriverManager.getConnection(“jdbc:odbc:PIMS”,”Test”,”1234”);
3.數(shù)據(jù)庫進(jìn)行操作 (1)創(chuàng)建 Statement 對象
建立了到特定數(shù)據(jù)庫的連接之后,就可用該連接發(fā)送 SQL 語句。Statement 對象用 Connection 的方法createStatement 創(chuàng)建,如下列代碼段中所示:
Connection con = DriverManager.getConnection(url, “sunny”,”“); Statement stmt = con.createStatement();
為了執(zhí)行 Statement 對象,被發(fā)送到數(shù)據(jù)庫的 SQL 語句將被作為參數(shù)提供給 Statement 的方法:
ResultSet rs = stmt.executeQuery(“SELECT a, b, c FROMTable2”);
(2)使用 Statement 對象執(zhí)行語句
Statement 接口提供了三種執(zhí)行 SQL 語句的方法:executeQuery、executeUpdate 和execute。使用哪一個方法由 SQL 語句所產(chǎn)生的內(nèi)容決定。
方法 executeQuery 用于產(chǎn)生單個結(jié)果集的語句,例如 SELECT 語句。
方法 executeUpdate 用于執(zhí)行 INSERT、UPDATE 或 DELETE 語句以及 SQLDDL(數(shù)據(jù)定義語言)語句,例如 CREATE TABLE 和 DROP TABLE。INSERT、UPDATE 或 DELETE語句的效果是修改表中零行或多行中的一列或多列。executeUpdate 的返回值是一個整數(shù),指示受影響的行數(shù)(即更新計(jì)數(shù))。對于CREATE TABLE 或 DROP TABLE 等不操作行的語句,executeUpdate 的返回值總為零。
方法 execute用于執(zhí)行返回多個結(jié)果集、多個更新計(jì)數(shù)或二者組合的語句。因?yàn)槎鄶?shù)程序員不會需要該高級功能,所以本概述后面將在單獨(dú)一節(jié)中對其進(jìn)行介紹。
執(zhí)行語句的所有方法都將關(guān)閉所調(diào)用的 Statement 對象的當(dāng)前打開結(jié)果集(如果存在)。這意味著在重新執(zhí)行 Statement對象之前,需要完成對當(dāng)前 ResultSet 對象的處理。
應(yīng)注意,繼承了 Statement 接口中所有方法的 PReparedStatement 接口都有自己的executeQuery、executeUpdate 和 execute 方法。Statement 對象本身不包含 SQL語句,因而必須給 Statement.execute 方法提供 SQL 語句作為參數(shù)。PreparedStatement 對象并 不將SQL 語句作為參數(shù)提供給這些方法,因?yàn)樗鼈円呀?jīng)包含預(yù)編譯 SQL 語句。CallableStatement 對象繼承這些方法的PreparedStatement 形式。對于這些方法的 PreparedStatement 或 CallableStatement版本,使用查詢參數(shù)將拋出 SQLException。
|
新聞熱點(diǎn)
疑難解答
圖片精選