package com.jiuqi.njt.register.city; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import com.j256.ormlite.support.ConnectionSource; import com.j256.ormlite.table.TableUtils; /** * 省市县数据处理帮助类 * @author joe * */ public class CityDataUtil extends CityDBHelper<CityBean>{ public CityDataUtil(Context context) { super(context); try { TableUtils.createTableIfNotExists(getConnectionSource(), getBeanClass()); } catch (Exception e) { e.printStackTrace(); } } @Override protected Class<CityBean> getBeanClass() { return CityBean.class; } /** * 保存省市数据 * @param cityList */ public void addCityData(List<CityBean> cityList){ for (CityBean cityBean : cityList) { try { getDao().create(cityBean); } catch (SQLException e) { e.printStackTrace(); } } } /** * 查询中国的所有省市县 * @return */ public List<CityBean> queryAllCity(){ List<CityBean> cityList = new ArrayList<CityBean>(); CityBean cityBean = new CityBean(); cityBean.setCountryName("中国"); cityBean.setCountryNameInEnglish("CHINA"); try { cityList = getDao().queryForMatching(cityBean); } catch (SQLException e) { e.printStackTrace(); } return cityList; } /** * 查询中国的所有省 * @return */ public List<CityBean> queryProvince(){ List<CityBean> cityList = new ArrayList<CityBean>(); List<String> cityListNew = new ArrayList<String>(); /** * 省分中去掉特别行政区和直辖市 */ cityListNew.add("特别行政区"); cityListNew.add("直辖市"); /** * 省份中去掉自治区 */ cityListNew.add("内蒙古"); cityListNew.add("广西"); cityListNew.add("西藏"); cityListNew.add("宁夏"); cityListNew.add("新疆"); List<CityBean> provinceList = new ArrayList<CityBean>(); cityList = queryAllCity(); for (CityBean cityBean : cityList) { if(!cityListNew.contains(cityBean.getProvinceName())){ cityListNew.add(cityBean.getProvinceName()); provinceList.add(cityBean); } } return provinceList; } /** * 获取中国所有的自治区 * @return */ public List<CityBean> queryAutonomousRegionCity(){ List<CityBean> cityList = new ArrayList<CityBean>(); List<String> cityListNew = new ArrayList<String>(); cityListNew.add("内蒙古"); cityListNew.add("广西"); cityListNew.add("西藏"); cityListNew.add("宁夏"); cityListNew.add("新疆"); for (String string : cityListNew) { CityBean city = new CityBean(); city.setCountryName("中国"); city.setProvinceName(string); cityList.add(city ); } return cityList; } /** * 查询中国的所有直辖市 * @return */ public List<CityBean> queryMunicipalitiesCity(){ List<CityBean> cityList = new ArrayList<CityBean>(); List<CityBean> provinceList = new ArrayList<CityBean>(); CityBean cityBean = new CityBean(); cityBean.setProvinceName("直辖市"); cityBean.setCountryName("中国"); cityBean.setCountryNameInEnglish("CHINA"); try { cityList= getDao().queryForMatching(cityBean); } catch (SQLException e) { e.printStackTrace(); } List<String> cityListNew = new ArrayList<String>(); for (CityBean city : cityList) { if(!cityListNew.contains(city.getCityName())){ cityListNew.add(city.getCityName()); provinceList.add(city); } } return provinceList; } /** * 查询中国的所有特别行政区 * @return */ public List<CityBean> querySpecialAdministrativeRegionCity(){ List<CityBean> cityList = new ArrayList<CityBean>(); List<CityBean> provinceList = new ArrayList<CityBean>(); CityBean cityBean = new CityBean(); cityBean.setProvinceName("特别行政区"); cityBean.setCountryName("中国"); cityBean.setCountryNameInEnglish("CHINA"); try { cityList= getDao().queryForMatching(cityBean); } catch (SQLException e) { e.printStackTrace(); } List<String> cityListNew = new ArrayList<String>(); for (CityBean city : cityList) { if(!cityListNew.contains(city.getCityName())){ cityListNew.add(city.getCityName()); provinceList.add(city); } } return provinceList; } /** * 查询中国的某个地区下的数据(县级/三级) * @param cityBean * @return */ public List<CityBean> queryChildCity(CityBean cityBean){ List<CityBean> cityList = new ArrayList<CityBean>(); List<CityBean> provinceList = new ArrayList<CityBean>(); List<String> cityListNew = new ArrayList<String>(); if(null!=cityBean){ cityBean.setCountryName("中国"); cityBean.setCountryNameInEnglish("CHINA"); try { cityList= getDao().queryForMatching(cityBean); } catch (SQLException e) { e.printStackTrace(); } for (CityBean city : cityList) { if(!cityListNew.contains(city.getCountyName())){ cityListNew.add(city.getCountyName()); provinceList.add(city); } } } return provinceList; } /** * 查询中国的省下的市数据 * @param cityBean * @return */ public List<CityBean> queryProvinceChildCity(String provinceName){ List<CityBean> cityList = new ArrayList<CityBean>(); List<CityBean> provinceList = new ArrayList<CityBean>(); List<String> cityListNew = new ArrayList<String>(); CityBean cityBean = new CityBean(); cityBean.setProvinceName(provinceName); cityBean.setCountryName("中国"); cityBean.setCountryNameInEnglish("CHINA"); try { cityList= getDao().queryForMatching(cityBean); } catch (SQLException e) { e.printStackTrace(); } for (CityBean city : cityList) { if(!cityListNew.contains(city.getCityName())){ cityListNew.add(city.getCityName()); provinceList.add(city); } } return provinceList; } /** * 删除某一个省市数据 * @param cityBean */ public void deleteCity(CityBean cityBean){ cityBean = new CityBean(); try { getDao().delete(cityBean); } catch (SQLException e) { e.printStackTrace(); } } /** * 更新某一个省市数据 * @param cityBean */ public void updateCity(CityBean cityBean){ cityBean = new CityBean(); try { getDao().update(cityBean); } catch (SQLException e) { e.printStackTrace(); } } @Override public void onUpgrade(SQLiteDatabase arg0, ConnectionSource arg1, int oldVersion, int newVersion) { super.onUpgrade(arg0, arg1, oldVersion, newVersion); try { TableUtils.dropTable(arg1, CityBean.class, true); TableUtils.createTable(arg1, CityBean.class); } catch (SQLException e) { e.printStackTrace(); } } }