Skip to content
Snippets Groups Projects
Positions.java 4.49 KiB
Newer Older
  • Learn to ignore specific revisions
  • package com.example.scheduler_server;
    
    import java.sql.*;
    import java.util.Locale;
    
    /*
        Name: Positions
        Description: Responsible for sending queries and receiving responses from the database that deal with the
        Positions table.
     */
    public class Positions {
    
    
        // Object that facilitates the connection to the database
    
        private final Connection dbConnection;
    
    
        /*
        Name: Positions Constructor
        Parameters:
            Connection c: The connection to the database.
        Description: Instantiates a Positions object and sets the global connection for the methods.
        Return: Positions Object
         */
    
        protected Positions(Connection c) {
            this.dbConnection = c;
        }
    
    
        /*
        Name: addPosition
        Parameters:
            String position: A position to add.
            float wage: The wage of the position.
        Description: Adding a new position and wage to the table of possible positions.
        Return:
            String: If the positions was successfully added then the position and the wage separated by a slash is returned,
            otherwise an empty string is returned.
         */
    
        protected String addPosition(String position, float wage){
            String newPosition = "";
            try {
                Statement myStatement = dbConnection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
                myStatement.executeUpdate("insert into Positions (position, wage) " +
                        "values ('" + position.toLowerCase(Locale.ROOT) +"', "+ wage + ")");
    
                ResultSet myRs = myStatement.executeQuery("select * from Positions where position = '" + position + "'");
                myRs.next();
    
                newPosition = myRs.getString("position") + "/" + myRs.getString("wage");
            } catch (SQLException exception) {
                exception.printStackTrace();
                return newPosition;
            }
            return newPosition;
        }
    
    
        /*
        Name: editPosition
        Parameters:
            String position: A position.
            float wage: The new wage of the position.
        Description: Changes the wage of an existing position.
        Return:
            String: If the positions was successfully edited then the position and the wage separated by a slash is returned,
            otherwise an empty string is returned.
         */
    
        protected String editPosition(String position, float newWage){
            String editedPosition = "";
            try {
                Statement myStatement = dbConnection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
                myStatement.executeUpdate("update Positions set wage=" + newWage +
                        "where position='" + position.toLowerCase(Locale.ROOT) +"'");
    
                ResultSet myRs = myStatement.executeQuery("select * from Positions where position = '" + position + "'");
                myRs.next();
    
                editedPosition = myRs.getString("position") + "/" + myRs.getString("wage");
            } catch (SQLException exception) {
                exception.printStackTrace();
                return editedPosition;
            }
             return editedPosition;
        }
    
    
        /*
        Name: removePosition
        Parameters:
            String position: A position.
        Description: Removes a position and wage from the table of possible positions.
        Return:
            String: None
         */
        protected String removePosition(String position){
    
            try {
                Statement myStatement = dbConnection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
                myStatement.executeUpdate("delete from Positions " +
                        "where position = '" + position.toLowerCase(Locale.ROOT) + "'");
            } catch (SQLException exception) {
                exception.printStackTrace();
    
                return "";
    
            return position;
    
        /*
        Name: allPositions
        Parameters:
        Description: Gets all the positions and wages.
        Return:
            String: Each position was separated by slashes and each detail is separated by commas.
         */
    
        protected String allPositions(){
            StringBuilder response = new StringBuilder("allPositions");
            try {
                Statement myStatement = dbConnection.createStatement();
                ResultSet myRs = myStatement.executeQuery("select * from Positions");
                while (myRs.next()) {
                    response.append("/").append(myRs.getString("position"))
                            .append(",").append(myRs.getString("wage"));
                }
            } catch (SQLException exception) {
                exception.printStackTrace();
            }
            return response.toString();
        }
    }