This will make a Java global object:
import java.io.File;
import java.io.IOException;
import com.almworks.sqlite4java.SQLite;
import com.almworks.sqlite4java.SQLiteConnection;
import com.almworks.sqlite4java.SQLiteException;
import com.almworks.sqlite4java.SQLiteJob;
import com.almworks.sqlite4java.SQLiteQueue;
import com.almworks.sqlite4java.SQLiteStatement;
public final class DataAccess {
// Singleton Stuff
private static class SingletonHolder {
public static final DataAccess INSTANCE = new DataAccess();
}
public static DataAccess getInstance() {
return SingletonHolder.INSTANCE;
}
// End Singleton Stuff
private String HomePath = "";
private File DBFile;
private static SQLiteQueue queue;
private boolean initalized = false;
private DataAccess()
{
if (!initalized)
{
initDB();
initalized = true;
}
}
private void initDB()
{
DBFile = locateDBFile();
DeleteDatabaseContents();
}
private File locateDBFile()
{
File f = null;
try{
HomePath = System.getProperty("user.home");
System.out.println("HomePath: " + HomePath);
f = new File(HomePath + "/database.sqlite");
if (f.canRead())
return f;
else
{
boolean success = f.createNewFile();
if (success) {
// File did not exist and was created
} else {
// File already exists
}
}
} catch (IOException e) {
//Maybe try a new directory.
}
return f;
}
private void DeleteDatabaseContents()
{
queue.execute(new SQLiteJob<Object>()
{
protected Object job(SQLiteConnection connection) throws SQLiteException
{
// this method is called from database thread and passed the connection
StringBuilder sb = new StringBuilder();
sb.append("DROP TABLE IF EXISTS Playlist;");
sb.append("DROP TABLE IF EXISTS Settings;");
//sb.append("DELETE FROM someTable;");
//sb.append("DELETE FROM someTable;");
connection.exec(sb.toString());
return null;
}
});
}
public String getHomePath()
{
return HomePath;
}
} |
Now you can run this from anywhere:
DataAccess da;
da = DataAccess.getInstance(); |
Source: http://en.wikipedia.org/wiki/Singleton_pattern