用Java创建食物数据库

时间:2016-05-09 22:18:28

标签: java database

我刚刚开始学习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是一种非常庞大的语言,我无法找到创建数据库所需的实际信息。

谢谢。

3 个答案:

答案 0 :(得分:1)

一些oneline教程很好。但我会考虑投资一本好的Java书。我发现BigJava Cay S. Horstmann是一个非常有用的信息来源。它为您提供了大量练习和练习代码的机会,并以非常清晰的方式解释了这些内容。如果我在书中遵循某种方法有困难,我只会去在线教程。但我不会将它们用作学习资源,因为它们可能不正确。

虽然这是一本很昂贵的书,但你可能会得到旧版的cheeap或二手副本。甲骨文的网站也提供了有用的书面教程供您遵循https://docs.oracle.com/javase/tutorial/但我发现这本书更容易理解。

答案 1 :(得分: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 for&#34; java class ArrayList&#34;而且你会看到你能做些什么。

相反,如果要创建真实数据库,则需要阅读有关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());

        }  
    }
}

答案 2 :(得分:0)

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