數(shù)據(jù)庫是長期保存在計算機的存儲設(shè)備上,按照一定規(guī)則組織起來,可以被各種用戶或應(yīng)用共享的數(shù)據(jù)集合。那java數(shù)據(jù)庫增刪改查語句是不是有規(guī)律?下面來我們就來給大家講解一下。
使用JAVA程序封裝數(shù)據(jù)庫的增刪改,查語句,使用jdbc操作數(shù)據(jù)庫時,需要書寫sql語句,而且當(dāng)操作的需求更改時,這個方法就不能使用了,但其中的大部分實現(xiàn)代碼都是相同,所以我們自己封裝一個方法,用來對所有的增刪改操作都有效的方法
實現(xiàn)封裝功能使用到了可變參數(shù)。
封裝增刪改語句的代碼如下:
//創(chuàng)建連接對象 private Conn conn = new Conn(); //封裝增刪改語句 public int operationSql(String sql, Object...objects) { //獲取連接 Connection connection = conn.getConnection(); PreparedStatement preparedStatement = null; //定義統(tǒng)計變量 int count = 0; try { preparedStatement = connection.prepareStatement(sql); //通過for循環(huán)設(shè)置sql語句中每個占位符的值 for (int i = 0; i < objects.length; i++) { preparedStatement.setObject(i + 1, objects[i]); } count = preparedStatement.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } finally { closeSql(connection, preparedStatement, null); } return count; }
在進行數(shù)據(jù)庫操作之間必須要先獲取到一個數(shù)據(jù)庫連接。
這里解釋一下prepareStatement和它的父類Statement的使用和區(qū)別:
1,PreparedStatement是預(yù)編譯的,對于批量處理可以大大提高效率. 也叫JDBC存儲過程
2,statement每次執(zhí)行sql語句,相關(guān)數(shù)據(jù)庫都要執(zhí)行sql語句的編譯,preparedstatement是預(yù)編譯得, preparedstatement支持批處理的
3,使用 Statement 對象。在對數(shù)據(jù)庫只執(zhí)行一次性存取的時侯,用 Statement 對象進行處理。PreparedStatement 對象的開銷比Statement大
4,因為prepareStatement是預(yù)編譯的,所以它還可以預(yù)防SQL注入
executeUpdate()這個方法就是執(zhí)行數(shù)據(jù)庫增,刪,改 操作的,會返回一個int值該值代表的指示受影響的行數(shù)(即更新計數(shù))。
封裝查詢語句的代碼如下:
public void selectSql(String sql, Object...objects) { //獲取連接 Connection connection = conn.getConnection(); PreparedStatement preparedStatement = null; ResultSet resultSet = null; try { preparedStatement = connection.prepareStatement(sql); //通過for循環(huán)設(shè)置sql語句中每個占位符的值 for (int i = 0; i < objects.length; i++) { preparedStatement.setObject(i + 1, objects[i]); } resultSet = preparedStatement.executeQuery(); while (resultSet.next()) { System.out.println(resultSet.getInt(1) + "\t" + resultSet.getString(2) + "\t" + resultSet.getInt(3)); } } catch (SQLException e) { e.printStackTrace(); } finally { closeSql(connection, preparedStatement, resultSet); } }
同樣,操作前必須要獲取一個數(shù)據(jù)庫連接
executeQuery()這個方法就是執(zhí)行數(shù)據(jù)庫查詢操作的,并且它還會返回一個resultSet結(jié)果集。通過遍歷獲取集合中的數(shù)據(jù)
大家注意到在每個try … catch 后面都有finally
因為我們在使用結(jié)束后需要關(guān)閉資源,使用數(shù)據(jù)庫連接池的話,可以不用考慮關(guān)閉連接的占用資源的問題。這里只是講述一下關(guān)閉資源的額方法和流程。
現(xiàn)在我們將它封裝成一個方法,方法代碼如下:
public void closeSql(Connection connection, PreparedStatement preparedStatement, ResultSet resultSet) { if (connection != null) { try { connection.close(); } catch (SQLException e) { e.printStackTrace(); } } if (preparedStatement != null) { try { preparedStatement.close(); } catch (SQLException e) { e.printStackTrace(); } } if (resultSet != null) { try { resultSet.close(); } catch (SQLException e) { e.printStackTrace(); } } System.out.println("關(guān)閉成功!!"); }
當(dāng)資源對象不為空時,調(diào)用它的close()方法關(guān)閉資源。
java數(shù)據(jù)庫增刪改查語句肯定是有一定規(guī)律性的,只要大家掌握好技巧,進行java數(shù)據(jù)庫增刪改查語還是很容易的。最后大家如果想要了解更多初識java知識,敬請關(guān)注賦能網(wǎng)。
本文鏈接:
本文章“java數(shù)據(jù)庫增刪改查語句是不是有規(guī)律?實例講解”已幫助 57 人
免責(zé)聲明:本信息由用戶發(fā)布,本站不承擔(dān)本信息引起的任何交易及知識產(chǎn)權(quán)侵權(quán)的法律責(zé)任!
本文由賦能網(wǎng) 整理發(fā)布。了解更多培訓(xùn)機構(gòu)》培訓(xùn)課程》學(xué)習(xí)資訊》課程優(yōu)惠》課程開班》學(xué)校地址等機構(gòu)信息,可以留下您的聯(lián)系方式,讓課程老師跟你詳細解答:
咨詢熱線:4008-569-579