· 8 years ago · Mar 24, 2018, 09:52 PM
1package com.zebhi.kamusbahasa.helper;
2
3import android.content.ContentValues;
4import android.content.Context;
5import android.database.Cursor;
6import android.database.sqlite.SQLiteDatabase;
7import android.database.sqlite.SQLiteOpenHelper;
8import android.database.sqlite.SQLiteStatement;
9
10import com.zebhi.kamusbahasa.data.DatabaseContract;
11import com.zebhi.kamusbahasa.model.EnglishIndonesiaModel;
12import com.zebhi.kamusbahasa.model.IndonesiaEnglishModel;
13
14import java.util.ArrayList;
15
16import static android.provider.BaseColumns._ID;
17import static com.zebhi.kamusbahasa.data.DatabaseContract.EnglishColumns.TRANSLATE;
18import static com.zebhi.kamusbahasa.data.DatabaseContract.EnglishColumns.WORD;
19import static com.zebhi.kamusbahasa.data.DatabaseContract.IndonesiaColumns.KATA;
20import static com.zebhi.kamusbahasa.data.DatabaseContract.IndonesiaColumns.TERJEMAHAN;
21import static com.zebhi.kamusbahasa.data.DatabaseContract.TABLE_NAME_ENGLISH;
22import static com.zebhi.kamusbahasa.data.DatabaseContract.TABLE_NAME_INDONESIA;
23
24
25/**
26 * Created by zebhi on 3/23/18.
27 */
28
29public class DatabaseHelper extends SQLiteOpenHelper {
30
31 private static final String DATABASE_NAME = "kamus.db";
32 private static final int DATABASE_VERSION = 1;
33 private static final String LOG = "DatabaseHelper";
34
35 private SQLiteDatabase database;
36
37 public static String CREATE_TABLE_ENGLISH = "CREATE TABLE "+ TABLE_NAME_ENGLISH+
38 " ("+_ID+" integer primary key autoincrement, "+
39 WORD+" text not null, "+
40 TRANSLATE+" text not null);";
41
42 public static String CREATE_TABLE_INDONESIA = "CREATE TABLE "+DatabaseContract.TABLE_NAME_INDONESIA+
43 " ("+_ID+" integer primary key autoincrement, "+
44 KATA+" text not null, "+
45 TERJEMAHAN+" text not null);";
46
47 public DatabaseHelper(Context context) {
48 super(context, DATABASE_NAME, null, DATABASE_VERSION);
49 }
50
51 @Override
52 public void onCreate(SQLiteDatabase db) {
53 db.execSQL(CREATE_TABLE_ENGLISH);
54 db.execSQL(CREATE_TABLE_INDONESIA);
55 }
56
57 @Override
58 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
59 db.execSQL("DROP TABLE IF EXISTS "+ TABLE_NAME_ENGLISH);
60 db.execSQL("DROP TABLE IF EXISTS "+ DatabaseContract.TABLE_NAME_INDONESIA);
61 onCreate(db);
62 }
63
64// public long insertData(String word,
65// String translate,
66// String kata,
67// String terjemahan) {
68// SQLiteDatabase db = this.getWritableDatabase();
69// ContentValues contentValues = new ContentValues();
70// contentValues.put(WORD, word);
71// contentValues.put(TRANSLATE, translate);
72// contentValues.put(KATA, kata);
73// contentValues.put(TERJEMAHAN, terjemahan);
74// long english = db.insert(TABLE_NAME_ENGLISH, null, contentValues);
75// long indonesia = db.insert(DatabaseContract.TABLE_NAME_INDONESIA, null, contentValues);
76//
77// if (english != -1) {
78// Log.d("tag", "Database English berhasil masuk"+english);
79// }
80// if (indonesia != -1) {
81// Log.d("tag", "Database Indonesia berhasil masuk"+indonesia);
82// }
83// db.close();
84// return 1;
85// }
86
87 public long insertDataEnglish(String word,
88 String translate) {
89 SQLiteDatabase db = this.getWritableDatabase();
90 ContentValues contentValues = new ContentValues();
91 contentValues.put(WORD, word);
92 contentValues.put(TRANSLATE, translate);
93 long english = db.insert(TABLE_NAME_ENGLISH, null, contentValues);
94
95 db.close();
96 return english;
97 }
98
99 public long insertDataIndonesia(String kata,
100 String terjemahan) {
101 SQLiteDatabase db = this.getWritableDatabase();
102 ContentValues contentValues = new ContentValues();
103 contentValues.put(KATA, kata);
104 contentValues.put(TERJEMAHAN, terjemahan);
105 long indonesia = db.insert(TABLE_NAME_INDONESIA, null, contentValues);
106
107 db.close();
108 return indonesia;
109 }
110
111 public ArrayList<EnglishIndonesiaModel> getEnglishIndonesia() {
112 ArrayList<EnglishIndonesiaModel> listEnglishIndonesia = new ArrayList<>();
113 SQLiteDatabase db = this.getReadableDatabase();
114 String[] columnName = {_ID,
115 WORD,
116 TRANSLATE};
117 Cursor cursor = db.query(DatabaseContract.TABLE_NAME_ENGLISH,
118 columnName, null, null, null, null, null);
119 if (cursor != null) {
120 while (cursor.moveToNext()) {
121 int id = cursor.getInt(cursor.getColumnIndexOrThrow(_ID));
122 String word = cursor.getString(cursor.getColumnIndexOrThrow(WORD));
123 String translate = cursor.getString(cursor.getColumnIndexOrThrow(TRANSLATE));
124
125 EnglishIndonesiaModel kamusEngInd = new EnglishIndonesiaModel(String.valueOf(id),
126 word,
127 translate);
128
129 listEnglishIndonesia.add(kamusEngInd);
130 }
131 }
132
133 db.close();
134 return listEnglishIndonesia;
135 }
136
137 public ArrayList<IndonesiaEnglishModel> getIndonesiaEnglish() {
138 ArrayList<IndonesiaEnglishModel> listIndonesiaEnglish = new ArrayList<>();
139 SQLiteDatabase db = this.getReadableDatabase();
140 String[] columnName = {_ID,
141 KATA,
142 TERJEMAHAN};
143 Cursor cursor = db.query(DatabaseContract.TABLE_NAME_INDONESIA,
144 columnName, null, null, null, null, null);
145 if (cursor != null) {
146 while (cursor.moveToNext()) {
147 int id = cursor.getInt(cursor.getColumnIndexOrThrow(_ID));
148 String kata = cursor.getString(cursor.getColumnIndexOrThrow(WORD));
149 String terjemahan = cursor.getString(cursor.getColumnIndexOrThrow(TRANSLATE));
150
151 IndonesiaEnglishModel kamusIndEng = new IndonesiaEnglishModel(String.valueOf(id),
152 kata,
153 terjemahan);
154
155 listIndonesiaEnglish.add(kamusIndEng);
156 }
157 }
158
159 db.close();
160 return listIndonesiaEnglish;
161 }
162
163 public void beginTransaction() {
164 database.beginTransaction();
165 }
166
167 public void setTransactionSucessfull() {
168 database.setTransactionSuccessful();
169 }
170
171 public void endTransaction() {
172 database.endTransaction();
173 }
174
175 public void insertTransactionEnglish(EnglishIndonesiaModel englishIndonesiaModel) {
176 String sql = "INSERT INTO "+TABLE_NAME_ENGLISH+" ("+WORD+", "+TRANSLATE+
177 ") VALUES (?, ?)";
178 SQLiteStatement stmt = database.compileStatement(sql);
179 stmt.bindString(1, englishIndonesiaModel.getWord());
180 stmt.bindString(2, englishIndonesiaModel.getTranslate());
181 stmt.execute();
182 stmt.clearBindings();
183 }
184
185 public void insertTransactionIndonesia(IndonesiaEnglishModel indonesiaEnglishModel) {
186 String sql = "INSERT INTO "+TABLE_NAME_INDONESIA+" ("+KATA+", "+TERJEMAHAN+
187 ") VALUES (?, ?)";
188 SQLiteStatement stmt = database.compileStatement(sql);
189 stmt.bindString(1, indonesiaEnglishModel.getKata());
190 stmt.bindString(2, indonesiaEnglishModel.getTerjemahan());
191 stmt.execute();
192 stmt.clearBindings();
193 }
194
195 public int updateEnglish(EnglishIndonesiaModel englishIndonesiaModel) {
196 ContentValues args = new ContentValues();
197 args.put(WORD, englishIndonesiaModel.getWord());
198 args.put(TRANSLATE, englishIndonesiaModel.getTranslate());
199 return database.update(TABLE_NAME_ENGLISH, args, _ID+"= '"+englishIndonesiaModel.getId()+"'"
200 , null);
201 }
202
203 public int updateIndonesia(IndonesiaEnglishModel indonesiaEnglishModel) {
204 ContentValues args = new ContentValues();
205 args.put(KATA, indonesiaEnglishModel.getKata());
206 args.put(TERJEMAHAN, indonesiaEnglishModel.getTerjemahan());
207 return database.update(TABLE_NAME_INDONESIA, args, _ID+"= '"+indonesiaEnglishModel.getId()+"'"
208 , null);
209 }
210
211 public int deleteEnglish(int id) {
212 return database.delete(TABLE_NAME_ENGLISH, _ID+" = '"+id+"'", null);
213 }
214
215 public int deleteIndonesia(int id) {
216 return database.delete(TABLE_NAME_INDONESIA, _ID+" = '"+id+"'", null);
217 }
218
219}