2015-04-30 69 views
0

我想在開頭寫入數據庫,這樣新行就是第一行。我在這裏的代碼將寫入它,但它不會在第一行之前開始行。我嘗試過使用resultset並試圖使用beforeFirst(),但它告訴我,我不能使用任何一個。我很難理解如何去做。任何幫助,將不勝感激! :D在第一行之前插入行

 String host = "jdbc:derby://localhost:1527/Scores"; 
     String uName = "root"; 
     String uPass= "root"; 

     Connection con = DriverManager.getConnection(host, uName, uPass);      
     String SQLw = "INSERT into ROOT.HISCORES (Intials,Score) values (?,?)"; 


     pst = con.prepareStatement(SQLw); 

     pst.setString(1,jtxtIntials.getText()); 
     pst.setString(2,Score); 



     pst.execute();    
+4

數據庫中的行沒有順序,除了執行查詢時由'ORDER BY'強加的順序。 – Barmar

+0

正如@Barmar所說的。但是,您始終可以將行的主鍵設置爲較低值(如果尚未佔用),以便您可以創建一個索引,以便按順序執行。如果沒有空間,您可以創建一個orderBy鍵,並將其用於您的訂購 – nomistic

+0

,然而,我可以刪除數據庫中的最後一行,它實際上是最後一行,甚至不需要按順序。 – Zetaro666

回答

1

關係數據庫中的行確實以某種物理順序存儲,但使用SQL時,您無法直接控制此順序。考慮到物理存儲行的順序完全違背了SQL的原理,因此不包含這樣的功能。

如果您有興趣訂購行,您應該添加一個額外的屬性,通過示例對行進行編號,並在檢索時使用ORDER BY子句,如註釋中所述。

+0

我的初衷是創造一個最近的得分。這只是一堆隨機分數。但最近的分數不起作用。它不會在頂部插入分數。但使用BY ORDER,我可以刪除最低分。通過這樣做,我可以在數據庫底部插入一個新的分數。只要新分數不是最低的,它就不會被刪除。然後我再次使用BY ORDER按降序讀取它,製作一個高分榜!爲了正常工作,必須首先寫入,然後刪除,最後再讀取。 這真的花了我4個小時弄清楚。 Q_Q – Zetaro666

相關問題