2014-12-20 29 views
0

我使用JSF 2.2和Oracle 11g XE編寫項目,我編寫了連接語句等,並可以將數據輸入數據庫。並且還將數據庫中的數據顯示給用戶稱爲網頁的視圖部分。我的問題是:通常如果你用Oracle XE接口輸入數據,你會看到數據 - 你輸入的數據 - 按ID排序。但是當我使用JSF輸入數據時,在數據庫中我看不到任何順序。 例如使用Oracle XE和JSF 2.2通過排序將數據輸入到數據庫

ID姓名]

1丹布朗

2喬安妮·凱瑟琳·羅琳

3喬治·R,R·馬丁

通常這個應該寫在數據庫中。但在我的情況下,它是這樣的:

ID姓名]

1丹布朗

3喬治RR馬丁

2喬安妮·凱瑟琳·羅琳

我的代碼是:

public String AuthorEkle()//Sayfadan girilen verileri veri tabanına gönderem metot. 
{ 
    try{ 
     Class.forName("oracle.jdbc.driver.OracleDriver"); 
     con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","username","password"); 
     ps=con.prepareStatement("INSERT INTO AUTHOR(ID, NAME, SURNAME) VALUES(?,?,?)"); 
     ps.setInt(1, id);//ps nesnesine gelen id yi koyduk. 
     ps.setString(2, name);//ps nesnesine gelen alanı koyduk. 
     ps.setString(3, surname); 
     i=ps.executeUpdate(); 
    } 
    catch(Exception e)//Hata olduğunda konsola verilecek. 
    { 
     System.out.println(e); 
    } 
    finally //Ne olursa olsun her koşulda çalışacak kısım 
    { 
     try{ 
      con.close(); 
      ps.close(); 
     } 
     catch(Exception e) 
     { 
      System.out.println(e); 
     } 
    } 
    System.out.println(id); 
    System.out.println(name); 
    System.out.println(surname); 
    return "Authors"; 
} 

對於正常的順序什麼應該是我的sql語句 如果這個問題很簡單,我很抱歉。但我無法在谷歌找到任何好的答案。 感謝

+0

除非數據你的查詢包含一個'ORDER BY',即'SELECT * FROM author ORDER BY id',沒有「默認順序」。行可以按照它們插入的順序返回。但由於多種原因,他們可能不會按此順序退回。如果您關心顯示行的順序,則需要在「SELECT」中指定順序。 –

回答

0

當您選擇從表中你將不能保證獲得的數據相同的插入順序

始終使用ORDER BY獲得的順序數據你想

select * from your_table order by ID; 
+1

感謝您的回答,您在jsf屏幕上顯示數據時是正確的。但在Oracle數據庫中的排序是1 3 2,它應該是1 2 3我該怎麼做。不能這樣做嗎?如果我們有一個觸發器或過程在將新數據寫入數據庫時​​對它們進行排序,該怎麼辦?我怎樣才能實現這個觸發器 – Alp

+0

你可以通過使用訂單 – psaraj12

+1

確保訂單好吧,謝謝你的回答。在SELECT語句中,我使用ORDER BY,並在jsf頁面中看到了正確的順序。 – Alp

相關問題