@@ -16,14 +16,13 @@ public class DBHandler extends SQLiteOpenHelper {
16
16
private static final String TABLE_NAME = "employee" ;
17
17
18
18
19
-
20
19
public DBHandler (Context context , String name , SQLiteDatabase .CursorFactory factory , int version ) {
21
20
super (context , DB_NAME , factory , DB_VERSION );
22
21
}
23
22
24
23
@ Override
25
- public void onCreate (SQLiteDatabase db ){
26
- String SQL_CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + "( ID INTEGER,"
24
+ public void onCreate (SQLiteDatabase db ) {
25
+ String SQL_CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + "( ID INTEGER,"
27
26
+ "NAME TEXT,"
28
27
+ "PASSWORD TEXT,"
29
28
+ "SSN TEXT,"
@@ -34,47 +33,42 @@ public void onCreate(SQLiteDatabase db){
34
33
+ "SALARY INTEGER,"
35
34
+ "BIRTHDAY DATE)" ;
36
35
db .execSQL (SQL_CREATE_TABLE );
37
- addHandler (db , new Employee (99999 ,"Admin" ,"seedadmin" , "43254314" ,
38
- "" , "" , "" , "" , 400000 ,"1990-03-05" ));
39
- addHandler (db , new Employee (10000 ,"Alice" ,"seedalice" , "10211002" ,
40
- "" , "" , "" , "" , 20000 ,"2000-09-20" ));
41
- addHandler (db , new Employee (20000 ,"Boby" ,"seedboby" , "10213352" ,
42
- "" , "" , "" , "" , 50000 ,"2000-04-20" ));
43
- addHandler (db , new Employee (30000 ,"Ryan" ,"seedryan" , "32193525" ,
44
- "" , "" , "" , "" , 90000 ,"2000-04-10" ));
45
- addHandler (db , new Employee (30000 , "Samy" ,"seedsamy" , "32111111" ,
46
- "" , "" , "" , "" , 40000 ,"2000-01-11" ));
47
- addHandler (db , new Employee (40000 , "Ted" ,"seedted" , "24343244" ,
48
- "" , "" , "" , "" , 110000 ,"2000-11-3" ));
36
+ addHandler (db , new Employee (99999 , "Admin" , "admin" , "43254314" ,
37
+ "Ad" , "(403)220-1191" , "admin@hogwarts.edu" , "Gryffindor House" , 400000 , "1990-03-05" ));
38
+ addHandler (db , new Employee (10000 , "Alice" , "alice" , "10211002" ,
39
+ "Ali" , "(400)210-2112" , "alice@hogwarts.edu" , "Gryffindor House" , 20000 , "2000-09-20" ));
40
+ addHandler (db , new Employee (20000 , "Boby" , "boby" , "10213352" ,
41
+ "Bob" , "(404)789-2313" , "boby@hogwarts.edu" , "Hufflepuff House" , 50000 , "2000-04-20" ));
42
+ addHandler (db , new Employee (30000 , "Ryan" , "ryan" , "32193525" ,
43
+ "Ryanny" , "(210)096-3287" , "ryan@hogwarts.edu" , "Ravenclaw House" , 90000 , "2000-04-10" ));
44
+ addHandler (db , new Employee (40000 , "Samy" , "samy" , "32111111" ,
45
+ "Sam" , "(450)218-8876" , "samy@hogwarts.edu" , "Slytherin" , 40000 , "2000-01-11" ));
46
+ addHandler (db , new Employee (50000 , "Ted" , "ted" , "24343244" ,
47
+ "Teddy" , "(208)222-8712" , "ted@hogwarts.edu" , "Azkaban" , 110000 , "2000-11-3" ));
49
48
}
50
49
51
50
@ Override
52
- public void onUpgrade (SQLiteDatabase db , int i , int i1 )
53
- {
54
- db .execSQL ("DROP TABLE IF EXISTS " + TABLE_NAME );
51
+ public void onUpgrade (SQLiteDatabase db , int i , int i1 ) {
52
+ db .execSQL ("DROP TABLE IF EXISTS " + TABLE_NAME );
55
53
onCreate (db );
56
54
}
57
55
58
- public Cursor loadHandler ()
59
- {
56
+ public Cursor loadHandler () {
60
57
String query = "SELECT * FROM " + TABLE_NAME ;
61
58
Cursor cursor = null ;
62
- SQLiteDatabase db = this .getWritableDatabase ();
63
- if (db != null )
64
- {
65
- cursor = db .rawQuery (query ,null );
66
- db .close ();
59
+ SQLiteDatabase db = this .getReadableDatabase ();
60
+ if (db != null ) {
61
+ cursor = db .rawQuery (query , null );
62
+ // db.close();
67
63
}
68
64
69
65
return cursor ;
70
66
}
71
67
72
- public void addHandler (SQLiteDatabase db , Employee employee )
73
- {
68
+ public void addHandler (SQLiteDatabase db , Employee employee ) {
74
69
DateFormat dateFormat = new SimpleDateFormat ("yyyy-MM-dd" );
75
70
ContentValues values = new ContentValues ();
76
- if (db !=null )
77
- {
71
+ if (db != null ) {
78
72
values .put ("ID" , employee .getId ());
79
73
values .put ("NAME" , employee .getName ());
80
74
values .put ("PASSWORD" , employee .getPassword ());
@@ -89,13 +83,12 @@ public void addHandler(SQLiteDatabase db, Employee employee)
89
83
}
90
84
}
91
85
92
- public Employee findHandler (String username , String password )
93
- {
94
- String query = "SELECT * FROM " + TABLE_NAME + " WHERE NAME='" + username + "' AND PASSWORD='" + password +"'" ;
95
- SQLiteDatabase db = this .getWritableDatabase ();
96
- Employee employee = null ;
97
- Cursor cursor = db .rawQuery (query ,null );
98
- if (cursor !=null && cursor .getCount ()>0 && cursor .moveToFirst ()) {
86
+ public Employee findHandler (String username , String password ) {
87
+ String query = "SELECT * FROM " + TABLE_NAME + " WHERE NAME='" + username + "' AND PASSWORD='" + password + "'" ;
88
+ SQLiteDatabase db = this .getReadableDatabase ();
89
+ Employee employee = null ;
90
+ Cursor cursor = db .rawQuery (query , null );
91
+ if (cursor != null && cursor .getCount () > 0 && cursor .moveToFirst ()) {
99
92
employee = new Employee (Integer .parseInt (cursor .getString (0 )),
100
93
cursor .getString (1 ),
101
94
cursor .getString (2 ),
@@ -106,16 +99,16 @@ public Employee findHandler(String username, String password)
106
99
cursor .getString (7 ),
107
100
Integer .parseInt (cursor .getString (8 )),
108
101
cursor .getString (9 )
109
- );
102
+ );
110
103
cursor .close ();
111
104
}
112
105
db .close ();
113
106
return employee ;
114
107
}
115
108
116
- public boolean updateHandler (Employee employee )
117
- {
118
- String UPDATE_SQL_COMMAND = String .format ("UPDATE %s SET NICKNAME=%s , EMAIL=%s , ADDRESS=%s , PASSWORD=%s , PHONE=%s WHERE ID=%s RETURNING * " ,
109
+ public void partialUpdateHandler (Employee employee ) {
110
+ // invoked by user, update some optional fields
111
+ String UPDATE_SQL_COMMAND = String .format ("UPDATE %s SET NICKNAME='%s' , EMAIL='%s' , ADDRESS='%s' , PASSWORD='%s' , PHONE='%s' WHERE ID=%s" ,
119
112
TABLE_NAME ,
120
113
employee .getNickname (),
121
114
employee .getEmail (),
@@ -124,9 +117,25 @@ public boolean updateHandler(Employee employee)
124
117
employee .getPhone (),
125
118
employee .getId ());
126
119
SQLiteDatabase db = this .getWritableDatabase ();
127
- Cursor cursor = db .rawQuery (UPDATE_SQL_COMMAND ,null );
128
- cursor .close ();
129
- return cursor .getCount ()==1 ;
120
+ db .execSQL (UPDATE_SQL_COMMAND );
121
+ }
122
+
123
+ public boolean fullUpdateHandler (Employee employee )
124
+ {
125
+ // invoked by admin, update all fields except ID
126
+ DateFormat dateFormat = new SimpleDateFormat ("yyyy-MM-dd" );
127
+ SQLiteDatabase db = this .getWritableDatabase ();
128
+ ContentValues values = new ContentValues ();
129
+ values .put ("NAME" , employee .getName ());
130
+ values .put ("PASSWORD" , employee .getPassword ());
131
+ values .put ("SSN" , employee .getSsn ());
132
+ values .put ("NICKNAME" , employee .getNickname ());
133
+ values .put ("PHONE" , employee .getPhone ());
134
+ values .put ("SALARY" , employee .getSalary ());
135
+ values .put ("ADDRESS" , employee .getAddress ());
136
+ values .put ("EMAIL" , employee .getEmail ());
137
+ values .put ("BIRTHDAY" , dateFormat .format (employee .getBirthday ()));
138
+ return -1 !=db .update (TABLE_NAME ,values ,"ID=?" , new String []{String .valueOf (employee .getId ())});
130
139
}
131
140
132
141
}
0 commit comments