Android下Sqlite数据库辅助操作类

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



 

猜你喜欢

转载自blog.csdn.net/vs2008aspnet/article/details/18056119