· 4 years ago · Jun 02, 2021, 04:46 PM
1package com.example.bmicalculator;
2
3import android.database.Cursor;
4import android.database.sqlite.SQLiteDatabase;
5
6import androidx.appcompat.app.AppCompatActivity;
7
8import java.sql.SQLException;
9
10public abstract class DBActivity extends AppCompatActivity {
11
12 protected void SelectSQL(String SelectQuery, String[] args, OnSelectSuccess success)
13 throws Exception{
14
15 SQLiteDatabase db =
16 SQLiteDatabase.openOrCreateDatabase(getFilesDir().getPath() + "/BMI.db",
17 null);
18 db.beginTransaction();
19 Cursor cursor = db.rawQuery(SelectQuery, args);
20 while (cursor.moveToNext()){
21 String ID = cursor.getString(cursor.getColumnIndex("ID"));
22 String Weight = cursor.getString(cursor.getColumnIndex("Weight"));
23 String Height = cursor.getString(cursor.getColumnIndex("Height"));
24 String Result = cursor.getString(cursor.getColumnIndex("Result"));
25 success.OnElementSelected(ID, Weight, Height, Result);
26 }
27 db.endTransaction();
28 db.close();
29 }
30
31 protected boolean hasNewVersion = true;
32 protected void initDB() throws SQLException {
33 SQLiteDatabase db =
34 SQLiteDatabase.openOrCreateDatabase(getFilesDir().getPath() + "/BMI.db",
35 null
36 );
37
38 if(hasNewVersion){
39 String Query = "DROP TABLE if exists INFORMATION; ";
40 db.execSQL(Query);
41 hasNewVersion = false;
42 }
43
44 String createQuery = "CREATE TABLE if not exists INFORMATION (" +
45 "ID integer PRIMARY KEY AUTOINCREMENT, " +
46 "Weight real not null, " +
47 "Height real not null, " +
48 "Result real not null" +
49 ")";
50 db.execSQL(createQuery);
51 db.close();
52 }
53
54 protected void ExecSQL(String SQL, Object[] args, OnQuerySuccessOrError successOrError)
55 throws SQLException
56 {
57 SQLiteDatabase db = null;
58 try {
59 db =
60 SQLiteDatabase.openOrCreateDatabase(getFilesDir().getPath() + "/BMI.db",
61 null
62 );
63 String Query = SQL;
64 if(args != null)
65 db.execSQL(Query, args);
66 else
67 db.execSQL(SQL);
68 successOrError.OnSuccess();
69 }catch (Exception e){
70 successOrError.OnError(e.getMessage().toString());
71 }finally {
72 if (db != null)
73 db.close();
74 }
75 }
76
77 protected interface OnQuerySuccessOrError{
78 public void OnSuccess();
79 public void OnError(String error);
80 }
81
82 protected interface OnSelectSuccess{
83 public void OnElementSelected(String ID, String Weight, String Height, String Result);
84 }
85}
86