CoolWeather天气个人学习笔记1(第一行代码实战)

在国家 - 省份 - 城市 - 县城的跳转中出现问题在城市 - 县城这个流程出现了问题点击出现崩溃。

对问题进行搜查,发现县(县城)表已经建立,但是并没有写入表内容。

开始搜寻为什么没有写入表内容:

因为迟迟找不到问题抓狂,现在对整个代码重新分析。

1,首先创建数据库:文件放在分贝包内。

                                    一,使用的是SQLITE数据库。用的是SQL语法。新建一个类,CoolWeatherOpenHelper,这是一个建库类(在建立数据库同时调用建库类里面的的onCreate方法建表)。由于表已经建立,这里没有语法错误。

    B,在SRC新建一个模型包,用于建立市,县,省类,这些类用于歌厅和设置。

    C,之后DB包内建立CoolWeatherDB类,这个类用于定义一些接下来要用到的操作,可以认为是个工具箱。


以上流程总结为数据库操作:建表 - >表的操作对象 - >数据库工具类。

以下将对CoolWeatherDB进行分析

包com.coolweather.app.db;

进口的java.util.ArrayList;
进口的java.util.List;

进口com.coolweather.app.model.City;
进口com.coolweather.app.model.County;
进口com.coolweather.app.model.Province;

进口android.content.ContentValues;
进口android.content.Context;
进口android.database.Cursor;
进口android.database.sqlite.SQLiteDatabase;

公共类CoolWeatherDB {
	/ **
	 *数据库名
	 * /
	公共静态最后弦乐DB_NAME =“cool_weather”;
	/ **
	 *数据库版本
	 * /
	公共静态最终诠释VERSION = 1;
	私有静态CoolWeatherDB coolWeatherDB;
	私人SQLiteDatabase分贝;
	/ **
	 *将构造方法私有化,
	 * /
	私人CoolWeatherDB(上下文的背景下){
		CoolWeatherOpenHelper dbHelper =新CoolWeatherOpenHelper(背景下,DB_NAME,空,VERSION);
		DB = dbHelper.getWritableDatabase();
	}
	//这个构造方法的意思是,传入建库需要的数据,定义一个建库配置dbHelper。用dbHelper调用getWritableDatabase()方法建立数据库(自动初始化的onCreate语句建表)<预NAME =“代码”级=的“java”>
</pre><p></p><pre>
/ **
	 *获取CoolWeatherDB的实例
	 * /
	公共同步静态CoolWeatherDB的getInstance(上下文的背景下){
		如果(coolWeatherDB == NULL){
			coolWeatherDB =新CoolWeatherDB(背景);
			
		}
		返回coolWeatherDB;
	}
这里的同步我没有见过也不会用。但是应该是这个方法一次只能被一个线程调用的意思。这里的上下文我还不懂,不明白意思,以后再填。
/ **
	 *将省实例存储到数据库
	 * 
	 * /
	公共无效saveProvince(省省){
		如果(省!= NULL){
			ContentValues值=新ContentValues();
			values.put(“province_name”,province.getProvinceName());
			values.put(“PROVINCE_CODE”,province.getProvinceCode());
			db.insert(“省”,空,价值);
			
			
		}
	}
	/ **
	 *从数据库读取全国所有省份的信息 
	 * /
	公开名单<市> loadProvinces(){
		名单<市>列表=新的ArrayList <市>();
		光标光标= db.query(“省”,NULL,NULL,NULL,NULL,NULL,NULL);
		如果(cursor.moveToFirst()){
			做{
				省省=新的省();
				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(省);
			}
的<span style =“白色空间:前”> </ SPAN>而(cursor.moveToNext());
		}
的<span style =“白色空间:前”> </ span>如果(指针!= NULL){
			cursor.close();
		}
		返回列表;
	}
	/ **
	 *将市实例存储到数据库
	 * /
	公共无效saveCity(市城市){
		如果(市!= NULL){
			ContentValues值=新ContentValues();
			values.put(“CITY_NAME”,city.getCityName());
			values.put(“CITY_CODE”,city.getCityCode());
			values.put(“province_id”,city.getProvinceId());
			db.insert(“城市”,空,价值);
			
		}
	}
	/ **
	 *从数据库读取某省下所有的城市信息
	 * /
	公开名单<市> loadCities(INT provinceId){
		名单<市>列表=新的ArrayList <市>();
		光标光标= db.query(“城市”,NULL,“province_id =?”,新的String [] {将String.valueOf(provinceId)},NULL,NULL,NULL);
		如果(cursor.moveToFirst()){
			做{
				市城市=新城区();
				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(市);
				
			}而(cursor.moveToNext());
			
		}
	如果(指针!= NULL){
		cursor.close();
	}
	返回列表;
	}
	/ **
	 *将县实例存储到数据库	
	 * /
	公共无效saveCounty(县县){
		如果(县!= NULL){
			ContentValues值=新ContentValues();
			values.put(“COUNTY_NAME”,county.getCountyName());
			values.put(“county_code”,county.getCountyCode());
			values.put(“city_id”,county.getCityId());
			db.insert(“县志”,空,价值);
		}
	}
	/ **
	 *从数据库读取某城市下所有的县信息
	 * 
	 * /
	公开名单<县> loadCounties(INT cityId){
		名单<县>列表=新的ArrayList <县>();
		光标光标= db.query(“县志”,NULL,“cityId =?”,新的String [] {将String.valueOf(cityId)},NULL,NULL,NULL);
		如果(cursor.moveToFirst()){
			做{
				县县=新安县();
				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(县);
				}而(cursor.moveToNext());
			}
		如果(指针!= NULL){
			cursor.close();
		}
		返回列表;
	}
}

//好啦程序的已经找到,在上面的“?cityId =”中意思是SELECT * FROM县哪里= cityId; 这里的问题是表的列名是city_Id;这个错误找了好久..





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值