一年一度畢業(yè)季,,又到了簡歷,、offer漫天飛,失望與希望并存的時節(jié),。在IT行業(yè),,高校畢業(yè)生求職時,面臨的第一道門檻就是技能與經(jīng)驗的考驗,,但學校往往更注重學生的理論知識,,忽略了對學生實踐能力的培養(yǎng),因而導致很多求職者在面試中敗下陣來,。在畢業(yè)生所學知識普遍脫離職場實戰(zhàn)的大趨勢下,,《Java Web開發(fā)實戰(zhàn)》應(yīng)運而生,此教材由千鋒教研院高教產(chǎn)品研發(fā)部編著,、清華大學出版社出版,,將理論應(yīng)用于實踐,切實提高學生的實戰(zhàn)能力,。 下面給大家分享點本書的干貨內(nèi)容,,關(guān)于JDBC內(nèi)容繼續(xù)給大家學習,想要完整資料的可以銜接查看之前的文章,。 據(jù)庫可以是不相同的,。 1.1.1 JDBC的常用API JDBC定義了一系列操作數(shù)據(jù)庫的接口和類,這些接口和類位于java.sql包中,。接下來,,本節(jié)將詳細介紹JDBC的常用API。 1. Driver接口 Driver接口是所有JDBC驅(qū)動程序必須要實現(xiàn)的接口,,該接口提供給數(shù)據(jù)庫廠商使用,。在編寫JDBC程序時,必須先裝載特定數(shù)據(jù)庫廠商的驅(qū)動程序,,裝載驅(qū)動程序通過java.lang.Class類中的靜態(tài)方法forName()實現(xiàn),。 2. DriverManager類 DriverManager類用于加載JDBC驅(qū)動并創(chuàng)建與數(shù)據(jù)庫的連接,,DriverManager類的常用方法,具體如表1.1所示,。 表1.1 DriverManager的常用方法 方法名稱 功能描述 registerDriver(Driver driver) 注冊數(shù)據(jù)庫的驅(qū)動程序 getConnection (String url,String user,,String password) 獲取數(shù)據(jù)庫連接 3. Connection接口 Connection接口表示Java程序和數(shù)據(jù)庫的連接,,Java程序和數(shù)據(jù)庫的交互是通過Connection接口來完成的。Connection接口的常用方法,,具體如表1.2所示,。 表1.2 Connection接口的常用方法 方法名稱 功能描述 createStatement() 創(chuàng)建向數(shù)據(jù)庫發(fā)送sql的Statement對象 prepareStatement(String sql) 創(chuàng)建向數(shù)據(jù)庫發(fā)送預編譯sql的PrepareSatement對象 prepareCall(String sql) 創(chuàng)建執(zhí)行存儲過程的CallableStatement對象 4. Statement接口 Statement接口用于向數(shù)據(jù)庫發(fā)送SQL語句,Statement接口提供了三個執(zhí)行SQL語句的方法,,具體如表1.3所示,。 表1.3 Statement接口的方法 方法名稱 功能描述 execute(String sql) 運行語句,返回是否有結(jié)果集 executeQuery(String sql) 運行select語句,,返回ResultSet結(jié)果集 executeUpdate(String sql) 運行insert/update/delete操作,,返回更新的行數(shù) 5. PreparedStatement接口 繼承自Statement接口,用于執(zhí)行預編譯的SQL語句,,PreparedStatement接口提供了一些對數(shù)據(jù)庫進行基本操作的方法,,具體如表1.4所示。 表1.4 PreparedStatement接口的方法 方法名稱 功能描述 executeQuery(String sql) 運行select語句,,返回ResultSet結(jié)果集 executeUpdate(String sql) 運行insert/update/delete操作,,返回更新的行數(shù) addBatch(String sql) 把多條sql語句放到一個批處理中 executeBatch() 向數(shù)據(jù)庫發(fā)送一批sql語句執(zhí)行 6. CallableStatement接口 繼承自PreparedStatement接口,由方法prepareCall()創(chuàng)建,,用于調(diào)用SQL存儲過程,。CallableStatement接口提供了一些對數(shù)據(jù)庫進行基本操作的方法,具體如表1.5所示,。 表1.5 CallableStatement接口的方法 方法名稱 功能描述 wasNull() 查詢最后一個讀取的OUT參數(shù)是否為SQL類型的Null值 setNull(String parameterName,int sqlType) 將指定參數(shù)設(shè)置為SQL類型的NULL getInt(int parameterIndex ) 以Java語言中int值的形式獲取數(shù)據(jù)庫中Integer類型參數(shù)的值 setString(String parameterName,String x) 將指定參數(shù)設(shè)置為給定的Java類型的String值 registerOutParameter(int parameterIndex, int sqlType) 按順序位置parameterIndex將OUT參數(shù)注冊為SQL類型 7. ResultSet接口 ResultSet接口表示執(zhí)行select查詢語句獲得的結(jié)果集,該結(jié)果集采用邏輯表格的形式封裝,。ResultSet接口中提供了一系列操作結(jié)果集的方法,具體如表1.6所示,。 表1.6 ResultSet接口的方法 方法名稱 功能描述 getString(int index),、getString(String columnName) 獲得在數(shù)據(jù)庫里是varchar、char等類型的數(shù)據(jù)對象 getFloat(int index),、getFloat(String columnName) 獲得在數(shù)據(jù)庫里是Float類型的數(shù)據(jù)對象 getDate(int index),、getDate(String columnName) 獲得在數(shù)據(jù)庫里是Date類型的數(shù)據(jù) getBoolean(int index) 、 getBoolean(String columnName) 獲得在數(shù)據(jù)庫里是Boolean類型的數(shù)據(jù) getObject(int index),、getObject(String columnName) 向數(shù)據(jù)庫發(fā)送一批sql語句執(zhí)行 next() 移動到下一行 previous() 移動到前一行 absolute(int row) 移動到指定行 beforeFirst() 移動resultSet的最前面 afterLast() 移動到resultSet的最后面 ResultSet對象維護了一個指向表格數(shù)據(jù)行的指針,,指針默認在第一行之前,調(diào)用next()或previous()等移動指針的方法,,可以使指針指向具體的數(shù)據(jù)行,,進而調(diào)用getObject()方法獲取指定的查詢結(jié)果,。 8. ResultSetMetaData接口 ResultSetMetaData接口用于獲取關(guān)于ResultSet 對象中列的類型和屬性信息的對象。ResultSetMetaData接口的常用方法,,具體如表1.7所示,。 表1.7 ResultSetMetaData接口的常用方法 方法名稱 功能描述 getColumCount() 返回所有字段的數(shù)目 getColumName(int colum) 根據(jù)字段的索引值取得字段的名稱 getColumType (int colum) 根據(jù)字段的索引值取得字段的類型 1.1.2 JDBC URL JDBC URL提供了一種標識數(shù)據(jù)庫的方法,它可以使JDBC程序識別指定的數(shù)據(jù)庫并與之建立連接,。大家在編寫JDBC程序時, 無需關(guān)注JDBC URL的形成過程,,只需使用與所用的數(shù)據(jù)庫一起提供的URL即可。 JDBC URL的標準語法如圖1.4所示(以MySQL為例),。 圖1.1 JDBC URL的標準語法 從圖1.4中可以看到,,JDBC URL由協(xié)議、子協(xié)議,、主機端口,、數(shù)據(jù)庫名稱、參數(shù)等組成,。其中,,JDBC URL中的協(xié)議總是jdbc,子協(xié)議因數(shù)據(jù)庫廠商的不同而有所差異,,在本例中為mysql,,主機為數(shù)據(jù)庫所在主機地址,端口為MySQL數(shù)據(jù)庫的默認端口號3306,,參數(shù)多為連接屬性的配置信息,,包括數(shù)據(jù)庫的用戶名、密碼,、編碼,、套接字連接的超時等,JDBC URL的常用參數(shù)如表1.8所示,。 表1.8 JDBC URL的常用參數(shù) 參數(shù)類型 參數(shù)名稱 user 數(shù)據(jù)庫用戶名,,用于連接數(shù)據(jù)庫 password 用戶密碼,用于連接數(shù)據(jù)庫 useUnicode 是否使用Unicode字符集,,如果參數(shù)characterEncoding設(shè)置為gb2312或gbk,,本參數(shù)值必須設(shè)置為true characterEncoding 當useUnicode設(shè)置為true時,指定字符編碼,。比如可設(shè)置為gb2312,、gbk、utf8 autoReconnect 當數(shù)據(jù)庫連接異常中斷時,,是否自動重新連接 autoReconnectForPools 是否使用針對數(shù)據(jù)庫連接池的重連策略 failOverReadOnly 自動重連成功后,,連接是否設(shè)置為只讀 maxReconnectsautoReconnect 重試連接的次數(shù) initialTimeoutautoReconnect 兩次重連之間的時間間隔,單位:秒 connectTimeout 和數(shù)據(jù)庫服務(wù)器建立socket連接時的超時,,單位:毫秒,。 0表示永不超時,,適用于JDK 1.4及更高版本 socketTimeoutsocket 操作(讀寫)超時,單位:毫秒,。 0表示永不超時 |
|