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