I am pretty new to Object Programming and Java, so I am here to gather your advice and feedback. Basically I am trying to write a background service which performs different tasks at different intervals. I'm just not 100% sure of what I am doing is following the coding standards or is efficient.
Main / Start Class:
public class Start {
    public static void main(String[] args) {
        Service s = new Service();
        s.Start();
    }
}
Database Class:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Database {
    /* Database settings */
    private final String HOSTNAME = "localhost";
    private final String DATABASE = "java_database";
    private final String USERNAME = "java_username";
    private final String PASSWORD = "java_password";
    /* Database connection */
    public Connection getConnection() {
        try {
            return DriverManager.getConnection("jdbc:mysql://" + HOSTNAME + "/" + DATABASE + "?user=" + USERNAME + "&password=" + PASSWORD + "&useSSL=false&useUnicode=true&characterSetResults=utf8");
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
        return null;
    }
}
Service Class:
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Service {
    private int taskId;
    private int taskType;
    /* Start Service */
    public void Start() {
        try {
            System.out.println("Starting Service...");
            while(true) {
                System.out.print("Checking for tasks... ");
                getNextTask();
                if (this.taskId > 0) {
                    System.out.println("Task ID " + this.taskId + " found.");
                    switch (this.taskType) {
                        case 1:
                            System.out.println("Task 1");
                            SampleTask s = new SampleTask();
                            s.Start();
                            s = null;
                            break;
                        default:
                            System.out.println("Error: Unknown Task");
                    }                   
                    setUsedTask();
                } else {
                    System.out.println("No tasks to perform at this time.");
                }
                this.taskId = 0;
                this.taskType = 0;
                Thread.sleep(5000);
            }
        } catch (InterruptedException ex) {
            ex.printStackTrace();
        }
    }
    /* Gets the next available task from the database */
    public void getNextTask() {
        try {
            Database db = new Database();
            String query = "select taskId, taskType "
                    + "from tasks "
                    + "where (time_to_sec(timediff(now(), taskLastRun)) > taskFrequency or taskLastRun is null) and taskEnabled = 1 "
                    + "limit 1";
            Statement stmt = db.getConnection().createStatement();
            ResultSet rset = stmt.executeQuery(query);
            if (rset.next()) {
                this.taskId = rset.getInt(1);
                this.taskType = rset.getInt(2);
            }
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    }
    /* Set task as complete */
    public void setUsedTask() {
        try {
            Database db = new Database();
            String query = "update tasks "
                    + "set taskLastRun = now() "
                    + "where taskId = ? "
                    + "limit 1";
            PreparedStatement pstmt = db.getConnection().prepareStatement(query);
            pstmt.setInt(1, this.taskId);
            pstmt.executeUpdate();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    }
}
 
     
    