package de.oppermann.bastian.spleef.storage;
import java.io.File;
import java.sql.DriverManager;
import java.sql.SQLException;
import org.bukkit.plugin.java.JavaPlugin;
import de.oppermann.bastian.spleef.util.Validator;
/**
* Class to connect to a SQLite-database.
*/
public class SQLiteConnector extends SQLConnector {
private final String DB_PATH;
/**
* Class constructor.
*
* @param plugin The plugin.
* @param filename The file name.
* @throws SQLException
*/
public SQLiteConnector(JavaPlugin plugin, String filename) throws SQLException {
Validator.validateNotNull(plugin, "plugin");
Validator.validateNotNull(filename, "filename");
DB_PATH = plugin.getDataFolder().getPath() + "/" + filename;
File f = new File(plugin.getDataFolder().getPath());
f.mkdirs();
connect();
succeeded = connection != null;
}
/*
* (non-Javadoc)
* @see de.oppermann.bastian.lib.storage.SQLConnector#connect()
*/
@Override
protected void connect() throws SQLException {
if (connection != null)
return;
connection = DriverManager.getConnection("jdbc:sqlite:" + DB_PATH);
Runtime.getRuntime().addShutdownHook(new Thread() {
@Override
public void run() {
try {
closeConnection();
} catch (SQLException e) {
// should not happen
e.printStackTrace();
}
}
});
}
}