· 7 years ago · Oct 14, 2018, 01:52 AM
1package sample.android.com.sample.Database;
2
3import android.content.ContentValues;
4import android.content.Context;
5import android.database.Cursor;
6import android.database.sqlite.SQLiteDatabase;
7import android.database.sqlite.SQLiteOpenHelper;
8
9
10import java.util.List;
11
12import sample.android.com.sample.UserProfile;
13
14
15
16public class DBHelper extends SQLiteOpenHelper {
17
18 public static final int DATABASE_VERSION = 1;
19 public static final String DATABASE_NAME = "Users.db";
20
21 public DBHelper(Context context) {
22 super(context, DATABASE_NAME, null, DATABASE_VERSION);
23 }
24
25 public void onCreate(SQLiteDatabase db) {
26 db.execSQL(SQL_CREATE_ENTRIES);
27 }
28 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
29 // This database is only a cache for online data, so its upgrade policy is
30 // to simply to discard the data and start over
31 db.execSQL(SQL_DELETE_ENTRIES);
32 onCreate(db);
33 }
34 public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {
35 onUpgrade(db, oldVersion, newVersion);
36 }
37
38
39 public void addInfo(String userName, String gender ){
40 // Gets the data repository in write mode
41 SQLiteDatabase db = this.getWritableDatabase();
42
43 // Create a new map of values, where column names are the keys
44 ContentValues values = new ContentValues();
45
46 values.put(UserProfile.Users.COLUMN_NAME_userName, userName);
47 //values.put(UserProfile.Users.COLUMN_NAME_dateOfBirth, dateOfBirth);
48 values.put(UserProfile.Users.COLUMN_NAME_Gender, gender);
49
50 // Insert the new row, returning the primary key value of the new row
51 long newRowId = db.insert(UserProfile.Users.TABLE_NAME, null, values);
52 }
53
54 public boolean updateInfor(String id, String userName,String dateOfBirth , String gender){
55 SQLiteDatabase db = this.getWritableDatabase();
56
57 // Create a new map of values, where column names are the keys
58 ContentValues values = new ContentValues();
59
60 values.put(UserProfile.Users.COLUMN_NAME_userName, userName);
61 values.put(UserProfile.Users.COLUMN_NAME_dateOfBirth, dateOfBirth);
62 values.put(UserProfile.Users.COLUMN_NAME_Gender, gender);
63
64 // Which row to update, based on the title
65 String selection = UserProfile.Users._ID + " LIKE ?";
66 String[] selectionArgs = { id };
67
68 int count = db.update(
69 UserProfile.Users.TABLE_NAME,
70 values,
71 selection,
72 selectionArgs);
73
74 if(db != null)
75 return true;
76 else
77 return false;
78 }
79
80 public void readAllInfor(){
81 SQLiteDatabase db = this.getWritableDatabase();
82
83 // Define a projection that specifies which columns from the database
84 // you will actually use after this query.
85 String[] projection = {
86 UserProfile.Users._ID,
87 UserProfile.Users.COLUMN_NAME_userName,
88 UserProfile.Users.COLUMN_NAME_dateOfBirth,
89 UserProfile.Users.COLUMN_NAME_Gender
90 };
91
92 String sortOrder = UserProfile.Users._ID + " ASC";
93
94 Cursor cursor = db.query(
95 UserProfile.Users.TABLE_NAME, // The table to query
96 projection, // The array of columns to return (pass null to get all)
97 null, //Not using Where Clause
98 null, //Not using value for Where Clause
99 null, // don't group the rows
100 null, // don't filter by row groups
101 sortOrder // The sort order
102 );
103
104 }
105
106 public void deleteInfo(String id){
107 SQLiteDatabase db = this.getWritableDatabase();
108
109 // Define 'where' part of query.
110 String selection = UserProfile.Users._ID + " LIKE ?";
111 String[] selectionArgs = {id};
112
113 String sortOrder = UserProfile.Users._ID + " ASC";
114
115 // Issue SQL statement.
116 db.delete(
117 UserProfile.Users.TABLE_NAME, // The table to query
118 selection, //using Where Clause
119 selectionArgs //using value for Where Clause
120 );
121 }
122
123 private static final String SQL_CREATE_ENTRIES = "CREATE TABLE " + UserProfile.Users.TABLE_NAME + " (" + UserProfile.Users._ID + "INTEGER PRIMARY KEY," + UserProfile.Users.COLUMN_NAME_userName + " TEXT," + UserProfile.Users.COLUMN_NAME_dateOfBirth + " TEXT," + UserProfile.Users.COLUMN_NAME_Gender +" TEXT )";
124
125 private static final String SQL_DELETE_ENTRIES = "DROP TABLE IF EXISTS " + UserProfile.Users.TABLE_NAME;
126
127
128
129}