Package beans.core.db

Source Code of beans.core.db.SkillControl

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package beans.core.db;

import beans.enumeration.Target;
import beans.enumeration.Utilization;
import beans.serializable.ChangeStatut;
import beans.serializable.Cost;
import beans.serializable.Skill;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
*
* @author mastersnes
*/
public class SkillControl {
    private static final String TARGET = "target";
    private static final String USE = "use";
    private static final String DESCRIPTION = "descriptionSkill";
    private static final String NAME = "nameSkill";
    public static final String TABLE_NAME = "SKILL";
   
    public Skill getSkill(final String name) {
        ResultSet set = null;
        PreparedStatement statement = null;
        try {
            statement = Database.getStatement("select * from "+TABLE_NAME+" where "+NAME+" = ?");
            statement.setString(1, name);
           
            set = statement.executeQuery();
           
            if (set.next()) {
                final Skill skill = getFromRowSet(set);
                return skill;
            } else {
                return null;
            }
        } catch (final SQLException ex) {
            Logger.getLogger(SkillControl.class.getName()).log(Level.SEVERE, null, ex);
            return null;
        } finally {
            closeProperly(statement);
        }
    }
   
    public static List<Skill> getAllSkills() {
        final List<Skill> skills = new ArrayList<Skill>();
        ResultSet set = null;
        PreparedStatement statement = null;
        try {
            statement = Database.getStatement("select * from "+TABLE_NAME);
           
            set = statement.executeQuery();
           
            while (set.next()) {
                final Skill skill = getFromRowSet(set);
                skills.add(skill);
            }
            return skills;
        } catch (final SQLException ex) {
            Logger.getLogger(SkillControl.class.getName()).log(Level.SEVERE, null, ex);
            return null;
        } finally {
            closeProperly(statement);
        }
    }

    private static void closeProperly(PreparedStatement statement) {
        if (statement != null) {
            try {
                statement.close();
            } catch (final SQLException ex) {
                Logger.getLogger(SkillControl.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }

    private static Skill getFromRowSet(final ResultSet set) {
        final ChangeStatutControl changeStatutControl = new ChangeStatutControl();
        final CostControl costControl = new CostControl();
       
        try {
            final Skill skill = new Skill();
            skill.setName(set.getString(NAME));
            skill.setDescription(set.getString(DESCRIPTION));
            skill.setChangeStatut(changeStatutControl.getChangeStatut(skill.getName(), TABLE_NAME));
            skill.setCost(costControl.getCost(skill.getName(), TABLE_NAME));
            skill.setTarget(Target.valueOf(set.getString(TARGET)));
            skill.setUse(Utilization.valueOf(set.getString(USE)));
            return skill;
        } catch (SQLException ex) {
            Logger.getLogger(SkillControl.class.getName()).log(Level.SEVERE, null, ex);
            return null;
        }

    }

    public void saveSkill(final Skill skill) {
        PreparedStatement statement = null;
        final ChangeStatutControl changeStatutControl = new ChangeStatutControl();
        final CostControl costControl = new CostControl();
        for (final ChangeStatut changeStatut : skill.getChangeStatut()) {
            changeStatutControl.saveChangeStatut(skill.getName(), changeStatut, TABLE_NAME);
        }
        for (final Cost cout : skill.getCost()) {
            costControl.saveCost(skill.getName(), cout, TABLE_NAME);
        }
       
        try {
            statement = Database.getStatement("insert into "+TABLE_NAME+" values (?,?,?,?)");
           
            statement.setString(1, skill.getName());
            statement.setString(2, skill.getDescription());
            statement.setString(3, skill.getUse().name());
            statement.setString(4, skill.getTarget().name());
           
            statement.executeUpdate();
           
        } catch (final SQLException ex) {
            Logger.getLogger(SkillControl.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            closeProperly(statement);
        }
    }
}
TOP

Related Classes of beans.core.db.SkillControl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.