本身写的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(); } }