本身寫的sqlite數據庫操做。以下:android
import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class SearchHistoryHelp extends SQLiteOpenHelper { public static String DB_NAME = "SearchHistory.db";// 物品信息的數據庫文件名 public static String DB_TABLE_NAME = "SearchHistory";// 物品信息的數據表名 private static final int DB_VERSION = 2; public SearchHistoryHelp(Context context) { super(context, DB_NAME, null, DB_VERSION); // TODO Auto-generated constructor stub } @Override public void onCreate(SQLiteDatabase db) { // 建立表 db.execSQL("CREATE TABLE IF NOT EXISTS " + DB_TABLE_NAME + " (HID INTEGER PRIMARY KEY AUTOINCREMENT," + " HName VARCHAR, HType INTEGER,HTime VARCHAR)"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { if (oldVersion == 1 && newVersion == DB_VERSION) { db.execSQL("ALTER TABLE " + DB_TABLE_NAME + " ADD COLUMN HType INTEGER"); db.execSQL("ALTER TABLE " + DB_TABLE_NAME + " ADD COLUMN HTime VARCHAR"); } } }
在使用的時候直接經過SearchHistoryManager類進行管理就行。sql
import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; public class SearchHistoryManager { private SearchHistoryHelp searchHelp; private SQLiteDatabase db; public SearchHistoryManager(Context context) { searchHelp = new SearchHistoryHelp(context); db = searchHelp.getWritableDatabase(); } /* * 向表中添加一個信息 * hname表示保存的字段 * htype表示字段的類型。1爲商品,2爲專題 * htime表示保存字段時的時間 */ public void add(String hname,int htype,String htime) { ContentValues cValues = new ContentValues(); // cValues.put("GID", gid); cValues.put("HName", hname); cValues.put("HType", htype); cValues.put("HTime", htime); db.insert(SearchHistoryHelp.DB_TABLE_NAME, null, cValues); } /* * 經過name來刪除對象 */ public void delData(String name) { String[] whereArgs = { name }; db.delete(SearchHistoryHelp.DB_TABLE_NAME, "HName=?", whereArgs); } /* * 清除數據 */ public void clearData() { ExecSQL("DELETE FROM SearchHistory"); } /** * 執行一個SQL語句 * * @param sql */ private void ExecSQL(String sql) { try { db.execSQL(sql); } catch (Exception e) { e.printStackTrace(); } } /* * 返回全部數據 */ public ArrayList<SearchRecordBean> searchAllData() { String sql = "SELECT * FROM SearchHistory"; return ExecSQLForUserInfo(sql); } /** * 執行SQL命令返回list * * @param sql * @return */ private ArrayList<SearchRecordBean> ExecSQLForUserInfo(String sql) { ArrayList<SearchRecordBean> list = new ArrayList<SearchRecordBean>(); Cursor c = ExecSQLForCursor(sql); while (c.moveToNext()) { SearchRecordBean recordBean=new SearchRecordBean(); recordBean.sData=c.getString(c.getColumnIndex("HName")); recordBean.sType=c.getString(c.getColumnIndex("HType")); recordBean.sTime=c.getString(c.getColumnIndex("HTime")); list.add(recordBean); } c.close(); return list; } /** * 若是表中含有商品類型的,則返回保存的最後一個 * 若是表中含有專題類型的,則返回保存的最後一個 * 1,表示商品。 2表示專題 */ public SearchRecordBean getGoodsTypeLase(int type){ SearchRecordBean recordBean=new SearchRecordBean(); String sql = "SELECT * FROM SearchHistory where HType="+type; Cursor c = ExecSQLForCursor(sql); if (c.getCount()==0) { recordBean.sData = ""; recordBean.sType = ""; recordBean.sTime = ""; return recordBean; } while (c.moveToNext()) { if (c.isLast()) { recordBean.sData=c.getString(c.getColumnIndex("HName")); recordBean.sType=c.getString(c.getColumnIndex("HType")); recordBean.sTime=c.getString(c.getColumnIndex("HTime")); } } return recordBean; } /** * 執行SQL,返回一個遊標 * * @param sql * @return */ private Cursor ExecSQLForCursor(String sql) { Cursor c = db.rawQuery(sql, null); return c; } public void closeDB() { db.close(); } }