写一个用于Android下操作Sqlite的辅助类
package com.db; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper; /** * Sqlite 维护和管理数据库的类 * @author Hack * */ public class SqliteDataBases extends SQLiteOpenHelper { public SqliteDataBases(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); } /** * 数据库创建时执行 */ @Override public void onCreate(SQLiteDatabase db) { } /** * 更改数据库时执行 */ @Override public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) { } }
辅助类:
package com.db; import java.util.List; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; /** * Sqlite数据库操作辅助类 * @author hack * */ public class SqliteHelper { private static SqliteDataBases sqlite=null; private static SqliteHelper sqlitehelper=null; private SqliteHelper(Context context,String dbname,int version){ sqlite=new SqliteDataBases(context, dbname,null,version); } public static SqliteHelper newInstance(Context context,String dbname,int version){ if(sqlitehelper!=null){ return sqlitehelper; } sqlitehelper=new SqliteHelper(context,dbname,version); return sqlitehelper; } /** * 获取一个数据库 * @return */ public SQLiteDatabase getWriteDataBase(){ if(this.sqlite!=null){ return this.sqlite.getWritableDatabase(); } return null; } /*** * 执行一条SQL语句,并返回执行结果 * @param sql * @param param * @return */ public boolean executeData(String sql,Object[] param){ boolean ret=false; SQLiteDatabase sqlite= this.getWriteDataBase(); try{ if(sqlite==null || !sqlite.isOpen() || sqlite.isReadOnly()){ ret=false; return ret; } if(param==null || param.length<=0){ sqlite.execSQL(sql); }else{ sqlite.execSQL(sql, param); } ret=true; }catch(Exception e){ e.printStackTrace(); }finally{ if(sqlite!=null){ sqlite.close(); } } return ret; } /** * 批量执行SQL语句 * @param sql * @param params * @return */ public boolean executeBatch(String[] sql,List<Object[]> params){ boolean ret=false; if(sql==null || sql.length<=0){ ret=true; return ret; } SQLiteDatabase sqlite= this.getWriteDataBase(); if(sqlite==null || !sqlite.isOpen() || sqlite.isReadOnly()){ ret=false; return ret; } try{ if(params==null || params.size()<=0){ for(String s:sql){ if(s==null){ continue; } sqlite.execSQL(s); } }else{ int i=0; for(Object[] p:params){ if(p==null || p.length<=0){ sqlite.execSQL(sql[i]); i++; }else{ sqlite.execSQL(sql[i],p); i++; } } } }catch(Exception e){ ret=false; }finally{ if(sqlite!=null){ sqlite.close(); } } return ret; } /** * 执行一条查询语句 * @param sql * @param param * @return */ public Cursor queryData(String sql,Object[] param){ SQLiteDatabase sqlite= this.getWriteDataBase(); Cursor cur=null; if(sqlite!=null && sqlite.isOpen()){ if(sql!=null){ try{ if(param==null || param.length<=0){ cur=sqlite.rawQuery(sql, null); }else{ cur=sqlite.rawQuery(sql,(String [])param); } }catch(Exception e){ return cur; } } } return cur; } }