public class TableManager {
private static final int DB_VERSION = 1;
private static final String DB_NAME = "MSM_DB";
public static final int READABLE_MODE = 1;
public static final int WRITABLE_MODE = 2;
private static SQLiteOpenHelper dbHelper = null;
public static SQLiteDatabase getWritableDatabase(Context context) {
dbHelper = createDbHelper(context);
return dbHelper.getWritableDatabase();
private static SQLiteOpenHelper createDbHelper(Context context) {
return new SQLiteOpenHelper(context, DB_NAME, null, DB_VERSION) {
public void onCreate(SQLiteDatabase db) {
db.execSQL(getSubjectTable());
Log.d("DB", getSubjectTable());
db.execSQL(getMarkTable());
Log.d("DB", getMarkTable());
db.execSQL(getMemoTable());
public void onUpgrade(SQLiteDatabase db, int oldVersion,
private static final String getSubjectTable() {
StringBuilder query = new StringBuilder();
query.append("CREATE TABLE \"" + Subject.TABELLA_MATERIE + "\" (");
query.append("\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT,");
query.append("\"" + Subject.MATERIA + "\" TEXT UNIQUE NOT NULL,");
query.append("\"" + Subject.PROF + "\" TEXT,");
query.append(" \"" + Subject.LIBRO + "\" TEXT,");
query.append("\"" + Subject.NOTE + "\" TEXT");
private static final String getMarkTable() {
StringBuilder query = new StringBuilder();
query.append("CREATE TABLE \"" + Mark.TABELLA_VOTI + "\" (");
query.append("\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT,");
query.append("\"" + Mark.DATA + "\" TEXT NOT NULL,");
query.append("\"" + Mark.MATERIA + "\" TEXT REFERENCES "
+ Subject.TABELLA_MATERIE + "(\"" + Subject.MATERIA
+ "\") ON UPDATE CASCADE ON DELETE CASCADE,");
query.append(" \"" + Mark.TIPO + "\" TEXT NOT NULL,");
query.append("\"" + Mark.VOTO + "\" DOUBLE NOT NULL,");
query.append("\"" + Mark.QUADRIMESTRE + "\" TEXT NOT NULL");
private static final String getMemoTable() {
StringBuilder query = new StringBuilder();
query.append("CREATE TABLE \"" + Memo.TABELLA_MEMO + "\" (");
query.append("\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT,");
query.append("\"" + Memo.DATA + "\" TEXT NOT NULL,");
query.append("\"" + Memo.TIPO + "\" TEXT NOT NULL,");
query.append("\"" + Mark.MATERIA + "\" TEXT REFERENCES "
+ Subject.TABELLA_MATERIE + "(\"" + Subject.MATERIA
+ "\") ON UPDATE CASCADE,");
query.append("\"" + Memo.NOTE + "\" TEXT NOT NULL");
public static void closeConnection() throws NullPointerException {
throw new NullPointerException();