· 7 years ago · Sep 15, 2018, 04:58 PM
1SQLite database table recreating at each application reboot
2package Nsh.android.sms;
3
4import android.content.ContentValues;
5import android.content.Context;
6import android.database.Cursor;
7import android.database.sqlite.SQLiteDatabase;
8import android.database.sqlite.SQLiteDatabase.CursorFactory;
9import android.database.sqlite.SQLiteOpenHelper;
10import android.provider.SyncStateContract.Helpers;
11
12public class Database {
13
14public static final String MYDATABASENAME="Mylanguagedbnew.db";
15 public static final String MYDATABASETABLE="Mylanguagedb_table1";
16public static final int MYDATABASEVERSION=1;
17 public static final String KEY_id="_id";
18public static final String KEY_language="languages";
19public static final String KEY_description="languagedescription";
20private static final String SCRIPT_CREATE_DATABASE="create table if not exists
21"+MYDATABASETABLE+" ("+KEY_id+" integer primary key autoincrement, "+KEY_language+"
22text not null, "+KEY_description+ " text not null);";
23private datahelper sqliteopenhelper;
24public static String userselectedlang;
25private SQLiteDatabase sqlitedatabase;
26private Context context;
27 public Database(Context c){
28System.out.println("DBcontext!!!1111");
29 context=c;
30 }
31 public Database openToread()throws android.database.SQLException{
32System.out.println("DBINSERTTTTTTTTT!!!OPENREAD22222");
33 sqliteopenhelper=new datahelper(context,MYDATABASENAME,null,MYDATABASEVERSION);
34 System.out.println("DBINSERTTTTTTTTT!!!OPENREAD22222");
35 sqlitedatabase=sqliteopenhelper.getReadableDatabase();
36 System.out.println("DBINSERTTTTTTTTT!!!OPENREAD22222");
37 return this;
38 }
39 public Database openTowrite()throws android.database.SQLException{
40System.out.println("DBINSERTTTTTTTTT!!!OPENWRITE22222");
41sqliteopenhelper=new datahelper(context,MYDATABASENAME,null,MYDATABASEVERSION);
42sqlitedatabase=sqliteopenhelper.getWritableDatabase();
43return this;
44 }
45 public void close(){
46sqliteopenhelper.close();
47 }
48 public Cursor retriveall(){
49 System.out.println("RETRIEVE ALL OK!!!!!!!!!");
50String[] columns={KEY_id,KEY_language,KEY_description};
51Cursor cursor=sqlitedatabase.query(MYDATABASETABLE, columns,null,null,null,null,null);
52return cursor;
53 }
54 public Cursor retrivelanguages(){
55String[] columns={KEY_language};
56Cursor c=sqlitedatabase.query(MYDATABASETABLE, columns,null,null,null,null,null);
57return c;
58 }
59 public Cursor retrieveselectedlanguagedecription(){
60userselectedlang=listlang.selectedlanguage;
61String query="select languagedescription from Mylanguagedb_table1 where languages
62 ='"+userselectedlang+"';";
63Cursor c1=sqlitedatabase.rawQuery(query,null);
64return c1;
65 }
66 public long insert(String language,String languagedescription){
67System.out.println("DBINSERTTTTTTTTT!!!INSERT !!!!!!!!!1111");
68ContentValues contentvalues=new ContentValues();
69contentvalues.put(KEY_language,language);
70contentvalues.put(KEY_description,languagedescription);
71return sqlitedatabase.insert(MYDATABASETABLE, null,contentvalues);
72 }
73 public int deleteall(){
74
75 return sqlitedatabase.delete(MYDATABASETABLE,null,null);
76 }
77 /*public int deleterow(){
78String selectedrow=listlang.selectedlanguage;
79
80return sqlitedatabase.delete(MYDATABASETABLE,selectedrow, null);
81 }*/
82 private static class datahelper extends SQLiteOpenHelper{
83
84public datahelper(Context context, String name, CursorFactory factory,
85 int version) {
86 super(context, name, factory, version);
87 // TODO Auto-generated constructor stub
88}
89
90@Override
91public void onCreate(SQLiteDatabase db) {
92 // TODO Auto-generated method stub
93 db.execSQL(SCRIPT_CREATE_DATABASE);
94}
95
96@Override
97public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
98 // TODO Auto-generated method stub
99 //db.update(table, values, whereClause, whereArgs)
100}
101
102 }
103 }
104
105//this is the name of my database
106public static final String DATABASE_NAME = "mydatabase.db";
107
108//this is the complete path of my database stored. you can check in DDMS
109public static final String DATABASE_PATH = "/data/data/com.rdc.mydatabase/databases/";
110
111Context context = getBaseContext();
112
113boolean databaseStatus = checkDataBase( DATABASE_PATH,DATABASE_NAME);
114//this will check when app start
115if (databaseStatus == false) {
116
117 DBAdapter database = new DBAdapter(context);
118 //here you can call your create table method
119 //database.createLoginTable();
120 Log.v("Debug", "Login table created.");
121}
122else{
123 Log.v("Debug", "Database already exist");
124}
125
126//method to check whether db is already exist or not and returns boolean
127private boolean checkDataBase(String databasePath, String databaseName) {
128 SQLiteDatabase checkDB = null;
129 try {
130 checkDB = SQLiteDatabase.openDatabase(databasePath + databaseName,
131 null, SQLiteDatabase.OPEN_READONLY);
132 checkDB.close();
133 Log.v("Debug", "Database exist");
134 return true;
135 } catch (SQLiteException e) {
136 Log.v("Debug", "Database not exist");
137
138 }
139 return false;
140 }
141
142public void onCreate(Bundle savedInstanceState) {
143 super.onCreate(savedInstanceState);
144 setContentView(R.layout.splash);
145
146 SharedPreferences pref = getSharedPreferences(PREFS_NAME1,MODE_PRIVATE);
147 boolean first1 = pref.getBoolean(PREF_FIRST1, false);
148
149 if(first1!=true)
150 {
151 getSharedPreferences(PREFS_NAME1,MODE_PRIVATE)
152 .edit()
153 .putBoolean(PREF_FIRST1, true)
154 .commit();
155
156 // insert data here or use Background Task to do that
157 }
158
159 }