package com.aionemu.gameserver.dao;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashSet;
import com.aionemu.commons.database.DB;
import com.aionemu.commons.database.IUStH;
import com.aionemu.commons.database.ParamReadStH;
import com.aionemu.gameserver.model.gameobjects.player.RecipeList;
/**
* @author lord_rex
*/
public class PlayerRecipesDAO {
private static final String SELECT_QUERY = "SELECT `recipe_id` FROM player_recipes WHERE `player_id`=?";
private static final String ADD_QUERY = "INSERT INTO player_recipes (`player_id`, `recipe_id`) VALUES (?, ?)";
private static final String DELETE_QUERY = "DELETE FROM player_recipes WHERE `player_id`=? AND `recipe_id`=?";
public static RecipeList load(int playerId) {
HashSet<Integer> recipeList = new HashSet<>();
DB.select(SELECT_QUERY, new ParamReadStH() {
@Override
public void setParams(PreparedStatement ps) throws SQLException {
ps.setInt(1, playerId);
}
@Override
public void handleRead(ResultSet rs) throws SQLException {
while (rs.next()) {
recipeList.add(rs.getInt("recipe_id"));
}
}
});
return new RecipeList(recipeList);
}
public static boolean addRecipe(int playerId, int recipeId) {
return DB.insertUpdate(ADD_QUERY, new IUStH() {
@Override
public void handleInsertUpdate(PreparedStatement ps) throws SQLException {
ps.setInt(1, playerId);
ps.setInt(2, recipeId);
ps.execute();
}
});
}
public static boolean delRecipe(int playerId, int recipeId) {
return DB.insertUpdate(DELETE_QUERY, new IUStH() {
@Override
public void handleInsertUpdate(PreparedStatement ps) throws SQLException {
ps.setInt(1, playerId);
ps.setInt(2, recipeId);
ps.execute();
}
});
}
}