您好,歡迎來到賦能網(wǎng)!

java數(shù)據(jù)庫增刪改查語句是不是有規(guī)律?實例講解

賦能網(wǎng) 2023-05-09 57

數(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

如果本頁不是您要找的課程,您也可以百度查找一下: