获取SQLLite省市区数据库中省市区数据的方法

在我上传的资源中有SQLLite版全国省市区的数据库,现在我来介绍下我开发地址列表时获取省市区数据时的方法。

废话少说,代码如下所示:

package xxxx.com.common;

import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;

public class AddressUtil {

//获取省的地址列表,//file-->数据库文件
public static Map<Integer,List> getProvince(File file){

String sql = "select ProSort ,ProName from T_Province ";
SQLiteDatabase db = null;
Cursor c = null;
Map<Integer,List> provinceData = new HashMap<Integer,List>();
//List provinceList = null;
try{
db = SQLiteDatabase.openOrCreateDatabase(file, null);
c = db.rawQuery(sql, null);
List provinceList1 = new ArrayList();
List provinceList2 = new ArrayList();
while(c.moveToNext()){
Map provinceMap = new HashMap();
provinceMap.put(c.getString(1), c.getInt(0));
provinceList1.add(provinceMap);
provinceList2.add(c.getString(1));
}
provinceData.put(0, provinceList1);
provinceData.put(1, provinceList2);
}catch(Exception e){
Log.d("WineStock", "getProvince:"+e.getMessage());
}finally{
if(c!=null){
c.close();
}
if(db!=null){
db.close();
}
}
return provinceData;
}
//获取对应省下面城市的列表,//file-->数据库文件,id-->指对应省的ID
public static Map<Integer,List> getCityByPid(int id,File file){
String sql = "select ProID,CityName from T_City where ProID= "+id;
SQLiteDatabase db = null;
Cursor c = null;
Map<Integer,List> cityData = new HashMap<Integer,List>();
//List cityList = null;
try{
db = SQLiteDatabase.openOrCreateDatabase(file, null);
c = db.rawQuery(sql, null);
List cityList1 = new ArrayList();
List cityList2 = new ArrayList();
while(c.moveToNext()){
Map cityMap = new HashMap();
cityMap.put(c.getString(1), c.getInt(0));
cityList1.add(cityMap);
cityList2.add(c.getString(1));
}
cityData.put(0, cityList1);
cityData.put(1, cityList2);

}catch(Exception e){
Log.d("WineStock", "getCityByPid:"+e.getMessage());
}finally{
if(c!=null){
c.close();
}
if(db!=null){
db.close();
}
}
return cityData;
}
//获取对应市下面区的列表,//file-->数据库文件,id-->指对应市的ID
public static List<String> getAreaByPid(int id,File file){
String sql = "select ZoneName from T_Zone where CityID= "+id;
SQLiteDatabase db = null;
Cursor c = null;
List<String> areaList = null;
try{
db = SQLiteDatabase.openOrCreateDatabase(file, null);
c = db.rawQuery(sql, null);
areaList = new ArrayList<String>();
while(c.moveToNext()){
areaList.add(c.getString(0));
}
}catch(Exception e){
Log.d("WineStock", "getAreaByPid:"+e.getMessage());
}finally{
if(c!=null){
c.close();
}
if(db!=null){
db.close();
}
}
return areaList;
}

}



你可能感兴趣的:(sql)