2016-05-09 60 views
-3

我剛開始學習Java,我大部分時間都在觀看視頻教程,但是現在我決定做一些實用的事情,因爲我不認爲我今天可以吸收更多的信息。在Java中創建食物數據庫

前段時間我有個想法開發一款健身應用程序,但被實際上沒有任何知識的難度所打,所以我想我會先創建一個宏計數器。我創建了一個類:

public class Food { 

    private String name; 
    public int weight; 
    private int calories; 
    private int protein; 
    private int fat; 
    private int carbs; 

    public int tCals = weight * calories; 
    public int tProtein = weight * protein; 
    public int tFat = weight * fat; 
    public int tCarbs = weight * carbs; 

    public void macrocounter(){ 
     System.out.println("Total calories: " + tCals); 
     System.out.println("\nProtein: " + tProtein); 
     System.out.println("\nCarbs: " + tCarbs); 
     System.out.println("\nFat: " + tFat); 
     System.out.println("-------------"); 

    } 


} 

現在我遇到的問題是創建數據庫。我想添加至少10個簡單的餐點,他們都將宏設置爲石頭,用戶只需鍵入餐的名稱和他吃了多少克,然後應用程序就會識別來自數據庫,填寫重量,並打印出總的宏。

我不是在這裏問如何編寫具體的代碼,只是你可以指我什麼我應該讀更多的能夠做到這一點? Java是一種非常瘋狂的語言,我很難找到創建數據庫所需的實際信息。

謝謝。

+0

我真的認爲你需要擴大你對數據庫的理解,並且想想你想要運行這個項目有多遠。這就是說,查看在java中創建枚舉。創建枚舉來保存靜態數據可能會很快失去控制,所以如果你想要使這個項目變得複雜,你將需要更多的經驗。您還可以使用包含數據(.txt,.xml等)的簡單平面文件來完成要查找的內容。 –

+0

你是絕對正確的,如果我想讓這個項目起飛,我確實需要學習更多東西,這就是爲什麼我從非常基本的事情開始,去做一點練習。我將確保閱讀關於枚舉的內容! – Gytis39

回答

0

你只想將數據存儲在主內存中?或在一個真正的數據庫到磁盤?

如果它是第一個選項,你可以這樣做:

ArrayList<Food> foods = new ArrayList<Food>(); 

一旦你有你的列表,你可以添加這樣的事情:

Food f = new Food(...data...); //You need a constructor 
           //to pass the data. 

foods.add(f); 

諮詢一下吧,你可以做一個事情號:

Food f0 = foods.get(0); 
Food f1 = foods.get(1); 

還可以查詢特定對象:

if (foods.contains(f0) { 
    // ... 
} 

Google對於「java class ArrayList」,你會看到你能做什麼。

如果您想要創建真正的數據庫,則需要閱讀JDBC驅動程序。首先,我建議你使用sqlite。

package consultarcalibredb; 

import java.sql.*; 


public class ConsultarCalibreDB { 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 

     Connection conn = null; 

     int id; 
     String title, author, path; 
     try { 
      DriverManager.registerDriver(new org.sqlite.JDBC()); 
      conn = DriverManager.getConnection("jdbc:sqlite:/home/user/folder/file.db"); 
      String sql = "select id, title, author_sort, path from books where author_sort like '%orwell%'"; 
      Statement stmt = conn.createStatement(); 
      ResultSet rs = stmt.executeQuery(sql); 

      System.out.println("id\ttitulo\tautor\tpath"); 
      while (rs.next()) { 
       id = rs.getInt("id"); 
       title = rs.getString("title"); 
       author = rs.getString("author_sort"); 
       path = rs.getString("path"); 

       System.out.println(id+"\n"+title+ 
       "\n"+author+"\n"+path); 

       System.out.println(); 
      } 

     } catch (Exception e) { 
      System.out.println(e.getMessage()); 

     } 
    } 
} 
+0

謝謝,非常好的迴應,正是我所期待的。我將立即嘗試第一種方法,並在明天開始第二種方法,因爲長遠而言,我的目標是在磁盤中創建數據庫(如果我曾設法創建接口併發布應用程序,則需要在線)。 – Gytis39

1

一些oneline教程很好。但我會考慮投資一本好的Java書。我發現BigJava Cay S. Horstmann是一個非常有用的信息來源。它爲您提供了大量練習和練習代碼的機會,並以非常明確的方式解釋了事情。如果我無法遵循書中的某種方法,我只會去在線教程。但我不會將它們用作學習資源,因爲它們可能不正確。

雖然這是一本昂貴的書,但您可能可以獲得舊版本的cheeap或二手副本。 Oracle的網站上還有一些有用的書面教程,可供您參考https://docs.oracle.com/javase/tutorial/但我發現本書更易於遵循。

+0

https://www.codecademy.com/learn/learn-java這也是一個很好的網站,它爲您提供與您的技能相匹配的項目,並記錄您的工作方式。我沒有嘗試過自己呢,但我聽到了很棒的東西 - 祝你好運 – Boo

+0

這不是一個答案..... –

+0

我不能評論我沒有達到50代表 - 只有在我自己的答案 – Boo

0

感謝您的幫助,我對我應該學到什麼以及從哪裏得到了很多建議。我不知道如何解決問題,但如果你這樣做,請這樣做。