2015-04-30 2 views
0

Я пытаюсь записать в базу данных в начале так, чтобы новая строка была первой строкой. Код, который я здесь, напишет, но он не запустится до первого ряд. Я попытался использовать набор результатов и попытался использовать 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, я могу удалить самый низкий балл. Делая это, я могу вставить новую оценку, которая будет сделана в нижней части базы данных. Он не будет удален, если новый счет не будет самым низким. затем я снова использую ЗАКАЗАТЬ, чтобы прочитать его в порядке убывания, сделав привет-табло! Чтобы он работал правильно, хотя он должен сначала писать, а затем удалять и, наконец, читать. Это буквально заняло у меня 4 часа, чтобы понять. Q_Q – Zetaro666

Смежные вопросы