Back to project page Sunshine.
The source code is released under:
GNU General Public License
If you think the Android project Sunshine listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
package la.sonny.sunshine.data; /*w w w .j ava 2 s .co m*/ import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import la.sonny.sunshine.data.WeatherContract.LocationEntry; import la.sonny.sunshine.data.WeatherContract.WeatherEntry; /** * Created by sonny on 10/24/14. */ public class WeatherDBHelper extends SQLiteOpenHelper { private static final int DATABASE_VERSION = 1; public static final String DATABASE_NAME = "weather.db"; public WeatherDBHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase sqLiteDatabase) { final String SQL_CREATE_LOCATION_TABLE = "CREATE TABLE " + LocationEntry.TABLE_NAME + " (" + LocationEntry._ID + " INTEGER PRIMARY KEY," + LocationEntry.COLUMN_LOC_SETTING + " TEXT NOT NULL," + LocationEntry.COLUMN_LAT + " REAL NOT NULL," + LocationEntry.COLUMN_LONG + " REAL NOT NULL," + LocationEntry.COLUMN_CITY_NAME + " TEXT NOT NULL," + " UNIQUE (" + LocationEntry.COLUMN_LOC_SETTING + ") ON CONFLICT IGNORE );"; final String SQL_CREATE_WEATHER_TABLE = "CREATE TABLE " + WeatherEntry.TABLE_NAME + " (" + // For weather forecasting, the user will want information for a certain date and // all dates following, so the forecast data should be sorted accordingly. WeatherEntry._ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + // the ID of the location entry associated with this weather data WeatherEntry.COLUMN_LOC_KEY + " INTEGER NOT NULL, " + WeatherEntry.COLUMN_DATETEXT + " TEXT NOT NULL, " + WeatherEntry.COLUMN_SHORT_DESC + " TEXT NOT NULL, " + WeatherEntry.COLUMN_WEATHER_ID + " INTEGER NOT NULL," + WeatherEntry.COLUMN_MIN_TEMP + " REAL NOT NULL, " + WeatherEntry.COLUMN_MAX_TEMP + " REAL NOT NULL, " + WeatherEntry.COLUMN_HUMIDITY + " REAL NOT NULL, " + WeatherEntry.COLUMN_PRESSURE + " REAL NOT NULL, " + WeatherEntry.COLUMN_WIND_SPEED + " REAL NOT NULL, " + WeatherEntry.COLUMN_DEGREES + " REAL NOT NULL, " + " FOREIGN KEY (" + WeatherEntry.COLUMN_LOC_KEY + ") REFERENCES " + LocationEntry.TABLE_NAME + " (" + LocationEntry._ID + "), " + // To assure the application have just one weather entry per day // per location, it's created a UNIQUE constraint with REPLACE strategy " UNIQUE (" + WeatherEntry.COLUMN_DATETEXT + ", " + WeatherEntry.COLUMN_LOC_KEY + ") ON CONFLICT REPLACE);"; sqLiteDatabase.execSQL(SQL_CREATE_LOCATION_TABLE); sqLiteDatabase.execSQL(SQL_CREATE_WEATHER_TABLE); } @Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVersion, int newVersion) { sqLiteDatabase.execSQL("DROP TABLE IF EXISTS " + LocationEntry.TABLE_NAME); sqLiteDatabase.execSQL("DROP TABLE IF EXISTS " + WeatherEntry.TABLE_NAME); onCreate(sqLiteDatabase); } }