2017-03-27 77 views
-1

如何在PostgreSQL的顶部桌面插入项目?这可能吗?在表格中,我只有两个字段作为文本。首先是主键。如何在桌面上插入项目

CREATE TABLE news_table (
    title text not null primary key, 
    url text not null  
); 

我需要一个简单的Java程序查询。

OK,这是我的代码:

get("/getnews", (request, response) -> { 
    List<News> getNews = newsService.getNews(); 
    List<News> getAllNews = newsService.getAllNews(); 
    try (Connection connection = DB.sql2o.open()) { 
     String sql = "INSERT INTO news_table(title, url) VALUES (:title, :url)"; 
     for (News news : getNews) { 
      if (!getAllNews.contains(news)) { 
       connection.createQuery(sql, true) 
         .addParameter("title", news.getTitle()) 
         .addParameter("url", news.getUrl()) 
         .executeUpdate() 
         .getKey(); 
      } 

     } 
    } 
    return newsService.getNews(); 
}, json()); 

的问题是,因为它要求getnews法第二次这个新的消息在表的末尾添加,并没有现存hronologi消息。这个如何解决?我使用Sql2o + sparkjava。

也许我已经知道了。在我必须包含对象getnews和getallnews之前,我需要逆转List getnews?

+0

'insert into new_table(title,url)values('The Title','The URL');' –

+6

有没有这样的事情作为“表的顶部” –

+0

要学习如何使用数据库与Java ,请参阅[JDBC教程](http://docs.oracle.com/javase/tutorial/jdbc/basics/index.html) –

回答

3

表中没有开始或结束。如果你想排序你的数据,只需在你的SELECT语句中使用ORDER BY。没有ORDER BY,就没有订单。

+0

您是对的。我会做测试 – kamiszczu

1

关系理论,关系数据库的数学基础,奠定了一定的条件,关系(以真实数据库表示)必须服从。其中之一是它们没有排序(,行既不会以任何特定的顺序存储也不能被检索,因为它们被视为数学集合)。因此它完全处于RDBMS的控制之下,在该表中新行被输入到表中。

因此,当您检索数据时,没有办法确保数据的特定排序,而不使用ORDER BY子句。