天气APP实战二 ( 创建表和包的结构)
来源:互联网 发布:倚天分析软件 编辑:程序博客网 时间:2024/06/05 05:44
上一篇地址
天气APP的实战(1)
创建表和包的结构
1.activity放所有与活动相关的包,以为自己忘记在配置文件注册
2.Db 放于数据库相关的代码 建立数据库 数据持久化操作
3.Model 其实就是实体类
4.Receive 存放所有广播接收器相关的代码
5.Service 存放所有与服务相关的代码
6.Utils 大家都估计是最熟悉的包 放工具类的地方
首先 我们要获取省市县的数据 用数据库进行存储 所以先建数据库 其实 我对于数据库的语言,没有校对工具是很容易错的,所以呢,大家最好现在用SQLiteExpertPers工具去调试下再去COPY到代码中.
WeatherOpenHelper
package com.xiaoxin.Weather.db;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteDatabase.CursorFactory;import android.database.sqlite.SQLiteOpenHelper;public class WeatherOpenHelper extends SQLiteOpenHelper {/** * Province表建表语句 */public static final String CREATE_PROVINCE = "create table Province ("+ "id integer primary key autoincrement, " + "province_name text, "+ "province_code text)";/** * City表建表语句 */public static final String CREATE_CITY = "create table City ("+ "id integer primary key autoincrement, " + "city_name text, " + "city_code text, " + "province_id integer)";/** * County表建表语句 */public static final String CREATE_COUNTY = "create table County ("+ "id integer primary key autoincrement, " + "county_name text, " + "county_code text, " + "city_id integer)";public WeatherOpenHelper(Context context, String name, CursorFactory factory,int version) {super(context, name, factory, version);}@Overridepublic void onCreate(SQLiteDatabase db) {db.execSQL(CREATE_PROVINCE); // 创建Province表db.execSQL(CREATE_CITY); // 创建City表db.execSQL(CREATE_COUNTY); // 创建County表}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {}}
就是三个建表的语句 最后在oncreate中执行 很简单的
另外每一张表最好有一个实体类,以便于后期开发
城市类
package com.xiaoxin.Weather.model;public class City {private int id;private String cityName;private String cityCode;private int provinceId;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getCityName() {return cityName;}public void setCityName(String cityName) {this.cityName = cityName;}public String getCityCode() {return cityCode;}public void setCityCode(String cityCode) {this.cityCode = cityCode;}public int getProvinceId() {return provinceId;}public void setProvinceId(int provinceId) {this.provinceId = provinceId;}}县
package com.xiaoxin.Weather.model;public class County {private int id;private String countyName;private String countyCode;private int cityId;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getCountyName() {return countyName;}public void setCountyName(String countyName) {this.countyName = countyName;}public String getCountyCode() {return countyCode;}public void setCountyCode(String countyCode) {this.countyCode = countyCode;}public int getCityId() {return cityId;}public void setCityId(int cityId) {this.cityId = cityId;}}省
package com.xiaoxin.Weather.model;public class Province {private int id;private String provinceName;private String provinceCode;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getProvinceName() {return provinceName;}public void setProvinceName(String provinceName) {this.provinceName = provinceName;}public String getProvinceCode() {return provinceCode;}public void setProvinceCode(String provinceCode) {this.provinceCode = provinceCode;}}
可以看出来,实体类的内容都非常简单,基本就是生成数据库表对应字段的get和set方法,接着还需要创建一个coolWeatherDB类 这个类中会把一些常用的数据库操作进行封装,以便于后期使用。
package com.xiaoxin.Weather.db;import java.util.ArrayList;import java.util.List;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import com.xiaoxin.Weather.model.City;import com.xiaoxin.Weather.model.County;import com.xiaoxin.Weather.model.Province;public class WeatherDB {/** * 数据库名 */public static final String DB_NAME = "weather";/** * 数据库版本 */public static final int VERSION = 1;private static WeatherDB coolWeatherDB;private SQLiteDatabase db;/** * 将构造方法私有化 */private WeatherDB(Context context) {WeatherOpenHelper dbHelper = new WeatherOpenHelper(context,DB_NAME, null, VERSION);db = dbHelper.getWritableDatabase();}/** * 获取CoolWeatherDB的实例。 */public synchronized static WeatherDB getInstance(Context context) {if (coolWeatherDB == null) {coolWeatherDB = new WeatherDB(context);}return coolWeatherDB;}/** * 将Province实例存储到数据库。 */public void saveProvince(Province province) {if (province != null) {ContentValues values = new ContentValues();values.put("province_name", province.getProvinceName());values.put("province_code", province.getProvinceCode());db.insert("Province", null, values);}}/** * 从数据库读取全国所有的省份信息。 */public List<Province> loadProvinces() {List<Province> list = new ArrayList<Province>();Cursor cursor = db.query("Province", null, null, null, null, null, null);if (cursor.moveToFirst()) {do {Province province = new Province();province.setId(cursor.getInt(cursor.getColumnIndex("id")));province.setProvinceName(cursor.getString(cursor.getColumnIndex("province_name")));province.setProvinceCode(cursor.getString(cursor.getColumnIndex("province_code")));list.add(province);} while (cursor.moveToNext());}return list;}/** * 将City实例存储到数据库。 */public void saveCity(City city) {if (city != null) {ContentValues values = new ContentValues();values.put("city_name", city.getCityName());values.put("city_code", city.getCityCode());values.put("province_id", city.getProvinceId());db.insert("City", null, values);}}/** * 从数据库读取某省下所有的城市信息。 */public List<City> loadCities(int provinceId) {List<City> list = new ArrayList<City>();Cursor cursor = db.query("City", null, "province_id = ?",new String[] { String.valueOf(provinceId) }, null, null, null);if (cursor.moveToFirst()) {do {City city = new City();city.setId(cursor.getInt(cursor.getColumnIndex("id")));city.setCityName(cursor.getString(cursor.getColumnIndex("city_name")));city.setCityCode(cursor.getString(cursor.getColumnIndex("city_code")));city.setProvinceId(provinceId);list.add(city);} while (cursor.moveToNext());}return list;}/** * 将County实例存储到数据库。 */public void saveCounty(County county) {if (county != null) {ContentValues values = new ContentValues();values.put("county_name", county.getCountyName());values.put("county_code", county.getCountyCode());values.put("city_id", county.getCityId());db.insert("County", null, values);}}/** * 从数据库读取某城市下所有的县信息。 */public List<County> loadCounties(int cityId) {List<County> list = new ArrayList<County>();Cursor cursor = db.query("County", null, "city_id = ?",new String[] { String.valueOf(cityId) }, null, null, null);if (cursor.moveToFirst()) {do {County county = new County();county.setId(cursor.getInt(cursor.getColumnIndex("id")));county.setCountyName(cursor.getString(cursor.getColumnIndex("county_name")));county.setCountyCode(cursor.getString(cursor.getColumnIndex("county_code")));county.setCityId(cityId);list.add(county);} while (cursor.moveToNext());}return list;}}
weatherDB 我决定还是下一节 仔细的讲解一下 毕竟 郭大婶 封装的很好
0 0
- 天气APP实战二 ( 创建表和包的结构)
- 天气APP的实战(1)
- "晴天"天气app的开源库逐步学习(二)
- #趣米杯#码农天气--码农自己的天气APP(二)
- RxAndroid 应用(二)(简易天气App)
- 实战项目:叶呆天气App之Toolbar和DrawerLayout
- django学习教程(二)理解django框架的逻辑结构,创建第一个app
- 进入实战,开发酷欧天气(二)
- 在eclipse中创建和myeclipse一样的包结构
- Lucene学习总结(二):lucene的包结构和工作流程
- Scrapy爬虫实战二:获取天气信息
- 基于Android的天气APP
- app包结构说明
- Java创建和解析Json数据方法(二)——org.json包的使用
- Java创建和解析Json数据方法(二)——org.json包的使用
- Java创建和解析Json数据方法(二)——org.json包的使用
- #趣米杯#码农天气--码农自己的天气APP(一)
- #趣米杯#码农天气--码农自己的天气APP(三)
- java学习:抽象类和接口
- c的指针*和引用&
- HDU-1873-看病要排队
- Qt5菜鸟入门(1)qt时钟
- C语言学习小结1
- 天气APP实战二 ( 创建表和包的结构)
- 最短加法链问题,POJ2248,BFS,搜索
- 黑马程序员--Java基础之面向对象(上)
- JS 简单的轮播特效示例
- ActivityGroup
- Java命令行编译和运行的错误解决--classpath
- 双链表解决Josephus问题
- 用java实现简单的连连看小游戏~~
- Sort List