DAY1
学会了
- sqlite 的建表,增删改查
- sqlite不能添加主键,删除列,alert命令被阉割后只能修改表名,新建列,而添加主键需按照格式创建新表,复制旧表过去sqlite11
- 表的复制失败,可能因为之前的表没有主键,导致数据重复,无法复制到以重复列做主键的新表
- 数据库命名,小写或_ ,尽量不大写,linux区分大小写,windows不区分
- 复习了 IO流
- idea注册码和webstorm一样,License server 输入 http://idea.iteblog.com/key.php
- 判null
- string.replace方法需返回给自己才能生效 line = line.replace(...);
制作天气功能
数据源
- hongyang的《第一行代码》里给的自建接口似乎因为和风天气接口升级而挂了,一时没法筛选城市
,便根据hongyang自建接口的和风天气源
提取城市列表,而网站给出的是txt格式,前公司的城市列表存的是json格式,再综合考虑一下内存问题(也就省了几kb吧。。不如处理图片内存去了。。)
后,考虑使用数据库来存储。
- 流程概括是.txt -> CSVToJSON ->.sqlite
步骤
- 将和风天气源文档复制
- 粘贴到http://www.convertcsv.com/csv-to-json.htm,STEP5获取到CSV To Keyed JSON,另存为本地txt
- 通过自己的代码将txt转为db
SQL语句
CREATE TABLE HeFengWeatherCity(
area_id varchar PRIMARY KEY ,
area_en varchar,
area_ch varchar,
nation_id varchar,
nation_name_en varchar,
nation_name_ch varchar,
province_name_en varchar,
province_name_ch varchar,
belong_area_name_en varchar,
belong_area_name_ch varchar,
latitude REAL,
longitude REAL
);
INSERT INTO HeFengWeatherCity(area_id, area_en, area_ch, nation_id, nation_name_en, nation_name_ch, province_name_en, province_name_ch, belong_area_name_en, belong_area_name_ch, latitude, longitude)
VALUES (11,12,13,14,15,16,17,18,19,20,21,22);
- 删除重复数据 delete from tbl_person where rowid not in(select max(rowid) from tbl_person group by id)
DELETE FROM OldHeFengWeatherCity WHERE ROWID NOT IN (SELECT max(ROWID) FROM OldHeFengWeatherCity GROUP BY area_id);
SELECT * FROM HeFengWeatherCity;
DROP TABLE OldHeFengWeatherCity;