2016-05-09 59 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

感谢您的帮助,我对我应该学到什么以及从哪里得到了很多建议。我不知道如何解决问题,但如果你这样做,请这样做。