Files
UniversalMusicPlayer/interface/src/main/java/edu/regis/universeplayer/data/DatabaseManager.java
Markil3 999f3345cc Moves player logic to its own class, away from Interface
In the future, this will make testing and a CLI environment easier.
2021-09-14 16:39:40 -06:00

52 lines
1.4 KiB
Java

/*
* Copyright (c) 2021 William Hubbard. All Rights Reserved.
*/
package edu.regis.universeplayer.data;
import edu.regis.universeplayer.ConfigManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.SQLWarning;
/**
* Manages the application song database
*/
public class DatabaseManager
{
private static final Logger logger = LoggerFactory.getLogger(DatabaseManager.class);
private static Connection db;
public static synchronized Connection getDb()
{
SQLWarning warning;
try
{
if (db == null || db.isClosed())
{
Class.forName("org.sqlite.JDBC");
db = DriverManager.getConnection("jdbc:sqlite:" + new File(ConfigManager
.getDataDir().getAbsolutePath(), "universalmusic.db").getAbsolutePath());
}
warning = db.getWarnings();
while (warning != null)
{
logger.warn("SQL Warning: ", warning);
warning = warning.getNextWarning();
}
db.clearWarnings();
}
catch (SQLException | ClassNotFoundException e)
{
logger.error("Could not store caching DIR.");
}
return db;
}
}