/** * */ package com.keju.maomao.db; import java.util.ArrayList; import java.util.List; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper; import com.keju.maomao.bean.SortModelBean; /** * 数据库操作类 * * @author zhouyong 说明: 1、数据库操作类 2、定义好数据表名,数据列,数据表创建语句 3、操作表的方法紧随其后 */ public class DataBaseAdapter { /** * 数据库版本 */ private static final int DATABASE_VERSION = 1; /** * 数据库名称 */ private static final String DATABASE_NAME = "maomao.db"; /** * 数据库表id */ public static final String RECORD_ID = "_id"; private SQLiteDatabase db; private ReaderDbOpenHelper dbOpenHelper; public DataBaseAdapter(Context context) { this.dbOpenHelper = new ReaderDbOpenHelper(context, DATABASE_NAME, null, DATABASE_VERSION); } public void open() { this.db = dbOpenHelper.getWritableDatabase(); } public void close() { if (db != null) { db.close(); } if (dbOpenHelper != null) { dbOpenHelper.close(); } } private class ReaderDbOpenHelper extends SQLiteOpenHelper { public ReaderDbOpenHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); } @Override public void onCreate(SQLiteDatabase _db) { // 创建表 _db.execSQL(CREATE_SQL_CITYS); } /** * 升级应用时,有数据库改动在此方法中修改。 */ @Override public void onUpgrade(SQLiteDatabase _db, int _oldVersion, int _newVersion) { } } /****************************** 城市表 ********************************/ /** * 城市表 */ public static final String TABLE_NAME_CITYS = "t_citys"; /** * 城市表中的列定义 * * @author zhouyong */ public interface CitysColumns { public static final String CITYID = "cityId"; public static final String NAME = "name"; public static final String PROVINCEID = "provinceId"; } /** * 城市表查询列 */ public static final String[] PROJECTION_CITYS = new String[] { RECORD_ID,CitysColumns.PROVINCEID , CitysColumns.NAME }; /** * 城市表的创建语句 */ public static final String CREATE_SQL_CITYS = "create table " + TABLE_NAME_CITYS + " (" + RECORD_ID + " integer primary key autoincrement," + CitysColumns.PROVINCEID + " integer, " + CitysColumns.NAME + " text " + ");"; /** * 批量插入城市信息 * * @param scbList */ public synchronized void bantchCitys(List<SortModelBean> citysList) { SQLiteDatabase localDb = db; try { localDb.beginTransaction(); localDb.delete(TABLE_NAME_CITYS, null, null); for (SortModelBean citysBean : citysList) { String sql = "insert into " + TABLE_NAME_CITYS + " (" + CitysColumns.PROVINCEID + "," + CitysColumns.NAME + ") values(?,?)"; localDb.execSQL(sql, new Object[] {citysBean.getProvinceId(),citysBean.getCityName()}); } localDb.setTransactionSuccessful(); } finally { localDb.endTransaction(); } } /** * 获取城市数据 * * @return */ public List<SortModelBean> findAllCitys() { List<SortModelBean> citysList = new ArrayList<SortModelBean>(); Cursor c = db.query(TABLE_NAME_CITYS, PROJECTION_CITYS, null, null, null, null, CitysColumns.PROVINCEID); while (c.moveToNext()) { SortModelBean city = new SortModelBean(); city.setProvinceId(c.getInt(1)); city.setCityName(c.getString(2)); citysList.add(city); } c.close(); return citysList; } /** * 通过GPS、数据库获取的城市名来获取省份(直辖市)id * * @param cityName * @return */ public int findProvinceId(String pName) { int pId = 0; // int cityNameLe = cityName.length(); // String cityNameSh = cityName.substring(0, cityNameLe - 1); Cursor cursor = db.query(TABLE_NAME_CITYS, null, "name like ?", new String[] { "%" + pName + "%" }, null, null, null); while (cursor.moveToNext()) { int pIndex = cursor.getColumnIndex("provinceId"); pId = cursor.getInt(pIndex); } cursor.close(); return pId; } }