第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

刪除數(shù)據(jù)庫中間的一些行后,有什么方法可以滾動(dòng) SQL 中的所有行嗎?

刪除數(shù)據(jù)庫中間的一些行后,有什么方法可以滾動(dòng) SQL 中的所有行嗎?

月關(guān)寶盒 2024-01-05 10:27:55
我正在嘗試滾動(dòng)我的所有數(shù)據(jù)庫(對于某些操作,例如顯示所有常量等),一切都很好,直到我刪除了 SQL 數(shù)據(jù)庫中間的一些行。我使用人員 ID 作為我的主鍵,并嘗試使用該鍵滾動(dòng)數(shù)據(jù)。personId 也是自動(dòng)增量的。這是刪除之前我的數(shù)據(jù)庫,我可以很好地滾動(dòng)+------------------------------+| personId |  name  |  family  |+------------------------------+| 1        | name1  | family1  || 2        | name2  | family2  || 3        | name3  | family3  || 4        | name4  | family4  || 5        | name5  | family5  || 6        | name6  | family6  |+------------------------------+這是我刪除后的數(shù)據(jù)庫+------------------------------+| personId |  name  |  family  |+------------------------------+| 1       | name1  | family1  | <-- num2 is deleted| 3        | name3  | family3  | <-- num4 is deleted| 5        | name5  | family5  || 6        | name6  | family6  |+------------------------------+我已經(jīng)嘗試過:1. use ROW_NUMBER() function in WHERE clause.2. reset personId number and auto incremental.3. sort data by date created in Unix-time.但他們的邏輯是錯(cuò)誤的,有的甚至行不通。這是檢索 SQL 數(shù)據(jù)庫的特定行的代碼。我的主要問題起源于哪里(=開始)。Person類包括personId和姓名以及家族屬性并有Getter和Setter方法。您可以在頁面末尾看到它。public static Person getRow(int rowNumber) throws SQLException {    String sql = "SELECT * FROM person WHERE personId = ?";    ResultSet rs = null;    try (            Connection con = DriverManager.getConnection(...)            PreparedStatement stmt = con.prepareStatement(sql);    ) {        stmt.setInt(1, rowNumber);        rs = stmt.executeQuery();        if (rs.next()) {                        Person bean = new Person(rowNumber, rs.getString("name"),                                   rs.getString("family"));            return bean;        } else {            System.err.println("No rows were found!");            return null;        }    } catch (SQLException e) {        System.err.println(e);        return null;    } finally {        if (rs != null) {            rs.close();        }    }}
查看完整描述

2 回答

?
嗶嗶one

TA貢獻(xiàn)1854條經(jīng)驗(yàn) 獲得超8個(gè)贊

經(jīng)過大量搜索我終于找到了答案。


您可以使用 resultSet.absolute(row_number) 方法來實(shí)現(xiàn)此目標(biāo)。像這樣編寫 getRow() 方法主體:


public static Person getRow(int rowNumber) throws SQLException {

    String sql = "SELECT * FROM profiles";

    try (

            Connection connection = DBUtil.getConnection();

            Statement statement = connection.createStatement();

            ResultSet resultSet = statement.executeQuery(sql);

    ) {

        if (resultSet.absolute(rowNumber)) {

            return new Person(resultSet.getInt("personId"), resultSet.getString("name"), 

                       resultSet.getString("family"), resultSet.getString("nationalId"));

        } else {

            System.err.println("No row were found !");

            return null;

        }

    } catch (SQLException e) {

        System.err.println(e);

        return null;

    }

}

當(dāng)然,您將通過這種方式檢索所有數(shù)據(jù)庫。但它對于像我這樣大的數(shù)據(jù)庫工作得很好(;


查看完整回答
反對 回復(fù) 2024-01-05
?
慕田峪9158850

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊

原因就在這里。您使用 rowNumber 來搜索 personId。您不應(yīng)該對哪些值有 rowNumber 做任何假設(shè)。相反,按 personId 搜索。



查看完整回答
反對 回復(fù) 2024-01-05
  • 2 回答
  • 0 關(guān)注
  • 187 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號