Java tutorial
/** * Copyright 2014 Yehezkel (Zack) Yovel * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package zack.examples.questiondb.database; import java.io.IOException; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; import com.squareup.okhttp.OkHttpClient; import com.squareup.okhttp.Request; import com.squareup.okhttp.Response; public class QuestionsOpenHelper extends SQLiteOpenHelper { public static final String DB_CONTENT_URL = "https://raw.githubusercontent.com/ZackYovel/AndroidSqliteMultichoiceExample/master/sql/contents.sql"; public static final String DB_NAME = "Questions.db"; public static final int DB_VERSION = 1; private static final String TAG = "QuestionsOpenHelper"; public QuestionsOpenHelper(Context context) { super(context, DB_NAME, null, DB_VERSION); } @Override public void onCreate(SQLiteDatabase db) { // executing the schema - DDL (data definition language) db.execSQL(DBContract.QuestionsTable.SCHEMA); db.execSQL(DBContract.AnswersTable.SCHEMA); try { OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder().url(DB_CONTENT_URL).build(); Response response = client.newCall(request).execute(); String[] sql = response.body().string().split("==="); // executing data insertion - DML (data manipulation language) for (String statement : sql) { db.execSQL(statement.trim()); } } catch (IOException e) { e.printStackTrace(); Log.d(TAG, e.getMessage()); } } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // If the schema changes this is where you read data from the old table // defined by the old schema and adapt it to the new schema. Then // you re-create the table using the new schema and insert all data back // in. // in many tutorials they re-create the database here even if there is // nothing to change: db.execSQL(DBContract.QuestionsTable.DELETE_SCHEMA); db.execSQL(DBContract.AnswersTable.DELETE_SCHEMA); onCreate(db); } }