Hallo,
Ich möchte ein Kochrezept Empfehlungssystem programmieren. Ich habe eine Methode getRecommendation, die den ältesten Eintrag aus der Tabelle Recipes wählt, dann alle Ingredients auswählt, die in der Tabelle RecipesIngredients zu diesem Rezept gehören und dann ein Recipe objekt erzeugt, das Ingredient objekte enthält, die gemäß der Tabelle zu dem Rezept korrepsondieren.
Das Problem: ich möchte das Recipe objekt zurückgeben, aber die sql query muss ja im try block erfolgen. Gebe ich das Recipe objekt in dem try block zurück, dann kompiliert der code nicht. Gebe ich ein Recipe objekt am Ende der Methode getRecommendation zurück, dann enthält das objekt nicht die informationen aus dem try block.
[CODE lang="java" title="getRecommendation"]public Recipe getRecommendation() {
String url = "jdbc:mysql://localhost/Cooking_Recipes";
try {
Connection conn = DriverManager.getConnection(url,"root","");
Statement statement = conn.createStatement();
ResultSet ingredients = statement.executeQuery("select RI.Name,I.Name from ((select * from Recipes order by LastCooked asc limit 1) R right join RecipesIngredients RI on R.\n" +
"ID = RI.RecipeID) right join Ingredients I on RI.IngredientID = I.ID ;");
ingredients.next();
Recipe recipe = new Recipe(ingredients.getString(1));
LinkedList<Ingredient> all_ingredients = new LinkedList<>();
do {
Ingredient ingredient = new Ingredient(ingredients.getString(2));
all_ingredients.add(ingredient);
} while (ingredients.next());
recipe.addIngredients(all_ingredients);
return recipe;
}
catch (Exception e) {
e.printStackTrace();
}
// HERE NEEDS TO BE A RETURN STATEMENT
}[/CODE]
Ich möchte ein Kochrezept Empfehlungssystem programmieren. Ich habe eine Methode getRecommendation, die den ältesten Eintrag aus der Tabelle Recipes wählt, dann alle Ingredients auswählt, die in der Tabelle RecipesIngredients zu diesem Rezept gehören und dann ein Recipe objekt erzeugt, das Ingredient objekte enthält, die gemäß der Tabelle zu dem Rezept korrepsondieren.
Das Problem: ich möchte das Recipe objekt zurückgeben, aber die sql query muss ja im try block erfolgen. Gebe ich das Recipe objekt in dem try block zurück, dann kompiliert der code nicht. Gebe ich ein Recipe objekt am Ende der Methode getRecommendation zurück, dann enthält das objekt nicht die informationen aus dem try block.
[CODE lang="java" title="getRecommendation"]public Recipe getRecommendation() {
String url = "jdbc:mysql://localhost/Cooking_Recipes";
try {
Connection conn = DriverManager.getConnection(url,"root","");
Statement statement = conn.createStatement();
ResultSet ingredients = statement.executeQuery("select RI.Name,I.Name from ((select * from Recipes order by LastCooked asc limit 1) R right join RecipesIngredients RI on R.\n" +
"ID = RI.RecipeID) right join Ingredients I on RI.IngredientID = I.ID ;");
ingredients.next();
Recipe recipe = new Recipe(ingredients.getString(1));
LinkedList<Ingredient> all_ingredients = new LinkedList<>();
do {
Ingredient ingredient = new Ingredient(ingredients.getString(2));
all_ingredients.add(ingredient);
} while (ingredients.next());
recipe.addIngredients(all_ingredients);
return recipe;
}
catch (Exception e) {
e.printStackTrace();
}
// HERE NEEDS TO BE A RETURN STATEMENT
}[/CODE]