写一个用于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;
}
}