前端之家收集整理的这篇文章主要介绍了
sqlite工具类,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
package com.asc.db;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.sqliteDatabase;
import android.database.sqlite.sqliteOpenHelper;
/**
* 数据库公共类,提供基本数据库操作
*
* @author raymon
*
*/
public class DBManager {
// 默认数据库
private static final String DB_NAME = "asc.db";
// 数据库版本
private static final int DB_VERSION = 1;
// 执行open()打开数据库时,保存返回的数据库对象
private sqliteDatabase msqliteDatabase = null;
// 由sqliteOpenHelper继承过来
private DatabaseHelper mDatabaseHelper = null;
// 本地Context对象
private Context mContext = null;
private static DBManager dbConn= null;
// 查询游标对象
private Cursor cursor;
/**
* sqliteOpenHelper内部类
*/
private static class DatabaseHelper extends sqliteOpenHelper {
DatabaseHelper(Context context) {
// 当调用getWritableDatabase()或 getReadableDatabase()方法时,创建一个数据库
super(context,DB_NAME,null,DB_VERSION);
}
@Override
public void onCreate(sqliteDatabase db) {
db.execsql("CREATE TABLE ad_record(id PRIMARY KEY NOT NULL,adUrl TEXT,apMac TEXT,createDate DATETIME);");
}
@Override
public void onUpgrade(sqliteDatabase db,int oldVersion,int newVersion) {
db.execsql("DROP TABLE IF EXISTS ad_record");
onCreate(db);
}
}
/**
* 构造函数
*
* @param mContext
*/
private DBManager(Context mContext) {
super();
this.mContext = mContext;
}
public static DBManager getInstance(Context mContext){
if (null == dbConn) {
dbConn = new DBManager(mContext);
}
return dbConn;
}
/**
* 打开数据库
*/
public void open() {
mDatabaseHelper = new DatabaseHelper(mContext);
msqliteDatabase = mDatabaseHelper.getWritableDatabase();
}
/**
* 关闭数据库
*/
public void close() {
if (null != mDatabaseHelper) {
mDatabaseHelper.close();
}
if (null != cursor) {
cursor.close();
}
}
/**
* 插入数据
* @param tableName 表名
* @param nullColumn null
* @param contentValues 名值对
* @return 新插入数据的ID,错误返回-1
* @throws Exception
*/
public long insert(String tableName,String nullColumn,ContentValues contentValues) throws Exception {
try {
return msqliteDatabase.insert(tableName,nullColumn,contentValues);
} catch (Exception e) {
throw e;
}
}
/**
* 通过主键ID删除数据
* @param tableName 表名
* @param key 主键名
* @param id 主键值
* @return 受影响的记录数
* @throws Exception
*/
public long delete(String tableName,String key,int id) throws Exception {
try {
return msqliteDatabase.delete(tableName,key + " = " + id,null);
} catch (Exception e) {
throw e;
}
}
/**
* 查找表的所有数据
* @param tableName 表名
* @param columns 如果返回所有列,则填null
* @return
* @throws Exception
*/
public Cursor findAll(String tableName,String [] columns) throws Exception{
try {
cursor = msqliteDatabase.query(tableName,columns,null);
cursor.moveToFirst();
return cursor;
} catch (Exception e) {
throw e;
}
}
/**
* 根据主键查找数据
* @param tableName 表名
* @param key 主键名
* @param id 主键值
* @param columns 如果返回所有列,则填null
* @return Cursor游标
* @throws Exception
*/
public Cursor findById(String tableName,int id,String [] columns) throws Exception {
try {
return msqliteDatabase.query(tableName,null);
} catch (Exception e) {
throw e;
}
}
/**
* 根据条件查询数据
* @param tableName 表名
* @param names 查询条件
* @param values 查询条件值
* @param columns 如果返回所有列,则填null
* @param orderColumn 排序的列
* @param limit 限制返回数
* @return Cursor游标
* @throws Exception
*/
public Cursor find(String tableName,String [] names,String [] values,String [] columns,String orderColumn,String limit) throws Exception{
try {
StringBuffer selection = new StringBuffer();
for (int i = 0; i < names.length; i++) {
selection.append(names[i]);
selection.append(" = ?");
if (i != names.length - 1) {
selection.append(",");
}
}
cursor = msqliteDatabase.query(true,tableName,selection.toString(),values,orderColumn,limit);
cursor.moveToFirst();
return cursor;
} catch (Exception e) {
throw e;
}
}
/**
*
* @param tableName 表名
* @param names 查询条件
* @param values 查询条件值
* @param args 更新列-值对
* @return true或false
* @throws Exception
*/
public boolean udpate(String tableName,ContentValues args) throws Exception{
try {
StringBuffer selection = new StringBuffer();
for (int i = 0; i < names.length; i++) {
selection.append(names[i]);
selection.append(" = ?");
if (i != names.length - 1) {
selection.append(",");
}
}
return msqliteDatabase.update(tableName,args,values) > 0;
} catch (Exception e) {
throw e;
}
}
/**
* 执行sql语句,包括创建表、删除、插入
*
* @param sql
*/
public void executesql(String sql) {
msqliteDatabase.execsql(sql);
}
}
原文链接:https://www.f2er.com/sqlite/200628.html