· 8 years ago · May 09, 2018, 10:24 AM
1Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.database.sqlite.SQLiteDatabase.execSQL(java.lang.String)' on a null object reference
2
3public class UniversityFinderDB extends SQLiteOpenHelper{
4
5private static final int DATABASE_VERSION= 1;
6static final String DATABASE_NAME="universities.db";
7private static final String TABLE_NAME="universityFinder";
8
9private static final String COLUMN_UNIVID="univId";
10private static final String COLUMN_UNIVERSITYNAME="univName";
11private static final String COLUMN_SCORE="score";
12
13SQLiteDatabase db;
14
15
16
17
18private static final String TABLE_CREATE = "create table universityFinder (univId integer primary key not null, univName varchar not null, score integer not null);";
19
20public UniversityFinderDB(Context context) {
21 super(context, DATABASE_NAME,null ,DATABASE_VERSION);
22}
23
24@Override
25public void onCreate(SQLiteDatabase database) {
26
27 database.execSQL(TABLE_CREATE);
28
29
30}
31
32
33
34public void executeEventInsert(String name, String score){
35 String query="INSERT INTO universityFinder(univName, score) VALUES('"+name+"','"+score+"');";
36 db.execSQL(query);
37}
38
39
40
41
42public ArrayList<HashMap<String,String>> executeSelectEvents(int input){
43 String query="select * from "+TABLE_NAME+ " where " +COLUMN_SCORE+" >="+input;
44 Cursor cursor= db.rawQuery(query,null);
45 ArrayList<HashMap<String,String>> events=new ArrayList<>();
46 while (cursor.moveToNext()){
47 HashMap<String,String> event=new HashMap<>();
48
49 String colUniversityId=cursor.getColumnName(0);
50 String colUniversityIdValue=cursor.getString(0);
51 String colUniversityName=cursor.getColumnName(1);
52 String colUniversityValue=cursor.getString(1);
53
54
55 event.put(colUniversityId,colUniversityIdValue);
56 event.put(colUniversityName,colUniversityValue);
57 events.add(event);
58 }
59 return events;
60}
61
62
63@Override
64public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
65
66 String query = "DROP TABLE IF EXISTS "+TABLE_NAME;
67 db.execSQL(query);
68}
69
70
71}
72
73public class ListviewFinderUniversities extends AppCompatActivity {
74
75
76UniversityFinderDB myDB;
77ArrayList<HashMap<String, String>> eventData;
78ListView finderListview;
79
80@Override
81protected void onCreate(Bundle savedInstanceState) {
82 super.onCreate(savedInstanceState);
83 setContentView(R.layout.activity_listview_finder_universities);
84
85
86 myDB = new UniversityFinderDB(this);
87
88 finderListview = (ListView) findViewById(R.id.finderListView);
89
90
91 myDB.executeEventInsert("UCI","101");
92
93 myDB.executeEventInsert("UeI","100");
94
95 myDB.executeEventInsert("UgI","105");
96
97 myDB.executeEventInsert("UjI","107");
98
99 myDB.executeEventInsert("ewI","109");
100
101 loadUnivFromDb();
102
103}
104
105private void createUnivAdapter(){
106 String from[]={"univId","univName"};
107 int to[] = {R.id.eventId, R.id.evenLabel};
108 SimpleAdapter adapter = new SimpleAdapter(getApplicationContext(), eventData, R.layout.uni_item_finder, from, to);
109 finderListview.setAdapter(adapter);
110}
111
112private void loadUnivFromDb() {
113 int gre = getIntent().getIntExtra("Gre",0);
114
115 ArrayList<HashMap<String, String>> data= myDB.executeSelectEvents(gre);
116 if(data.size()>0){
117 eventData=data;
118 createUnivAdapter();
119 }else {
120 Toast.makeText(getApplicationContext(),"NoEvents",Toast.LENGTH_SHORT).show();
121 }
122
123}
124
125
126}
127
128public void executeEventInsert(String name, String score){
129 //For write data to your database
130 SQLiteDatabase db = this.getWritableDatabase();
131 String query="INSERT INTO universityFinder(univName, score) VALUES('"+name+"','"+score+"');";
132 db.execSQL(query);
133}
134
135public ArrayList<HashMap<String,String>> executeSelectEvents(int input){
136 String query="select * from "+TABLE_NAME+ " where " +COLUMN_SCORE+" >="+input;
137 SQLiteDatabase db = this.getReadableDatabase();
138 Cursor cursor= db.rawQuery(query,null);
139 ArrayList<HashMap<String,String>> events=new ArrayList<>();
140 while (cursor.moveToNext()){
141 HashMap<String,String> event=new HashMap<>();
142
143 String colUniversityId=cursor.getColumnName(0);
144 String colUniversityIdValue=cursor.getString(0);
145 String colUniversityName=cursor.getColumnName(1);
146 String colUniversityValue=cursor.getString(1);
147
148
149 event.put(colUniversityId,colUniversityIdValue);
150 event.put(colUniversityName,colUniversityValue);
151 events.add(event);
152 }
153 return events;
154}