I have a table called Courts in my sqlite3 database. Based off of my code, it should drop the table if it already exists, but its not and giving me an error because it's creating a table that already exists. Any ideas? Thanks in advance.
package com.iu.ajchong.ball_in;
/**
* Created by andrewchong on 3/23/17.
*/
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import java.util.ArrayList;
import java.util.HashMap;
public class CourtsDBHandler extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "mydatabase.db";
private static final int DATABASE_VERSION = 5;
private static final String TABLE_COURTS = "Courts";
private static final String COLUMN_COURTID_ = "court_id";
private static final String COLUMN_NAME = "name";
private static final String COLUMN_STREET = "street";
private static final String COLUMN_CITY = "city";
private static final String COLUMN_STATE = "state";
private static final String COLUMN_ZIP = "zip";
public CourtsDBHandler(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_COURTS_TABLE = "CREATE TABLE " +
TABLE_COURTS + "(" +
COLUMN_COURTID_+ " INTEGER PRIMARY KEY AUTOINCREMENT, " +
COLUMN_NAME + " TEXT, " +
COLUMN_STREET + " TEXT, " +
COLUMN_CITY + " TEXT, " +
COLUMN_STATE + " TEXT, " +
COLUMN_ZIP + " TEXT)";
db.execSQL(CREATE_COURTS_TABLE);
addCourt();
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){
db.execSQL("DROP TABLE IF EXISTS " + TABLE_COURTS);
onCreate(db);
}
public void addCourt(){
ContentValues values = new ContentValues();
ArrayList<ArrayList<String>> myMap = feedDB();
//iterate through the outer ArrayList and get each ArrayList
//get the values of each column from the ArrayList
//System.out.println("Size: "+ myMap.size());
//System.out.println("first value is " + myMap.get(0).get(0).toString());
//advanced for loop
for(ArrayList<String> each : myMap) {
//System.out.println(each.get(0).toString()+ " is the value from DB");
values.put(COLUMN_NAME,each.get(0).toString());
values.put(COLUMN_STREET,each.get(1).toString());
values.put(COLUMN_CITY,each.get(2).toString());
values.put(COLUMN_STATE,each.get(3).toString());
values.put(COLUMN_ZIP,each.get(4).toString());
SQLiteDatabase db = this.getWritableDatabase();
try {
this.onCreate(db);
} catch (Exception e) {
e.printStackTrace();
}
try {
db.insert(TABLE_COURTS, null, values);
} catch (Exception e) {
e.printStackTrace();
}
db.close();
}
/* */
}
public ArrayList<ArrayList<String>> feedDB(){
ArrayList<ArrayList<String>> map = new ArrayList<>();
ArrayList<String> myList = new ArrayList<>();
ArrayList<String> myList2 = new ArrayList<>();
ArrayList<String> myList3 = new ArrayList<>();
myList.add("Briscoe");
myList.add("1225 N Fee Ln");
myList.add("Bloomington");
myList.add("IN");
myList.add("47408");
map.add(myList);
myList2.add("Forest");
myList2.add("1725 East Third St.");
myList2.add("Bloomington");
myList2.add("IN");
myList2.add("47408");
map.add(myList2);
myList3.add("Wright");
myList3.add("501 N Jordan Ave.");
myList3.add("Bloomington");
myList3.add("IN");
myList3.add("47406");
map.add(myList3);
return map;
}
}