`
oraclestudy
  • 浏览: 481722 次
文章分类
社区版块
存档分类

androd SQLite 自己写的数据库操作类

 
阅读更多

package com.db;


import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;


public class MyHelper extends SQLiteOpenHelper{

};

public MyHelper(Context context, String name,
CursorFactory factory, int version) {
super(context, name, factory, version);
}


@Override
public void onCreate(SQLiteDatabase db) {

//这儿添加建表语句

               db.execSQL("你的SQL语句");

}


@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}

/**
* 执行一条SQL语句
* @param sql
*/
public void executeSQL(String sql)
{
SQLiteDatabase db = null;
try{
db = this.getWritableDatabase();
db.execSQL(sql);
}catch(Exception e){
e.printStackTrace();
}finally{
db.close();
}
}

/**
* 执行一条SQL语句,返回一个游标
* @param sql
* @return
*/
public Cursor executeSQLwithCursorReturn(String sql)
{
Cursor retCursor = null;
SQLiteDatabase db = null;
try{
db = this.getReadableDatabase();
retCursor = db.rawQuery(sql, null);
}catch(Exception e){
Log.d("qiaoning_debug", "DB ERROR");
e.printStackTrace();
}
return retCursor;
}


/**
* 执行一条SQL语句,判断是否存在该记录,存在返回true,不存在返回false
* @param sql
* @return
*/
public boolean isExist(String sql)
{
boolean retBoolean = false;
Cursor c = null;
SQLiteDatabase db = null;
try{
db = this.getReadableDatabase();
c = db.rawQuery(sql, null);
if(c.getCount() == 0)
{
retBoolean = false;
}
else
{
retBoolean = true;
}
}catch(Exception e){
Log.e("ERROR", e.toString());
//e.printStackTrace();
}finally{
db.close();
}
return retBoolean;
}

/**

* @param table
* @param columns
* @param selection
* @param selectionArgs
* @param groupBy
* @param having
* @param orderBy
* @return
*/
public Cursor select(String table,String[] columns,String selection,
String[] selectionArgs,String groupBy,String having,String orderBy)
{
SQLiteDatabase db = null;
Cursor cursor = null;
try {
db = this.getReadableDatabase();
cursor = db.query(table, columns, selection, selectionArgs, groupBy, having, orderBy);
} catch (Exception e) {
// TODO: handle exception
}finally{
db.close();
}
return cursor;
}

/**

* @param table
* @param fields
* @param values
* @return the row ID of the newly inserted row, or -1 if an error occurred
*/
public long insert(String table, String[] fields, String[] values)
{
SQLiteDatabase db = this.getWritableDatabase();
ContentValues cv = new ContentValues();
for(int i = 0;i < fields.length;i ++)
{
cv.put(fields[i], values[i]);

return db.insert(table, null, cv);
}

/**

* @param table
* @param cv
* @return the row ID of the newly inserted row, or -1 if an error occurred 
*/
public long insertWithContentValues(String table,ContentValues cv)
{
SQLiteDatabase db = this.getWritableDatabase();
long i = 0;
i = db.insert(table, null, cv);
db.close();
return i;
}
/**

* @param table
* @param cv
* @param whereClause
* @param whereArgs
* @return the number of rows affected 
*/
public int updateTableWithContentValues(String table,ContentValues cv,String whereClause,String[] whereArgs)
{
SQLiteDatabase db = this.getWritableDatabase();
int i = 0;
i = db.update(table, cv, whereClause, whereArgs);
return i;
}

/**
* @param table
* @param updateFields
* @param updateValues
* @param whereClause
* @param whereArgs
* @return
*/
public int update(String table,String[] updateFields,String[] updateValues,
String whereClause , String[] whereArgs)
{
SQLiteDatabase db = this.getWritableDatabase();
ContentValues cv = new ContentValues();
for(int i=0;i<updateFields.length;i++)
{
cv.put(updateFields[i], updateValues[i]);
}
return db.update(table, cv, whereClause, whereArgs);
}

/**
* @param table
* @param where
* @param whereArgs
* @return
*/
public int delete(String table,String where,String[] whereArgs)
{
SQLiteDatabase db = this.getWritableDatabase();
return db.delete(table, where, whereArgs);
}
@Override
public synchronized void close() {
// TODO Auto-generated method stub
super.close();
}


}

2
3
分享到:
评论

相关推荐

    Android sqlite数据库操作通用框架AHibernate

    Android sqlite数据库操作通用框架AHibernate 使用示例见博客: http://blog.csdn.net/lk_blog

    安卓Android sqlite万能数据库

    每次使用数据库都会有繁琐的代码要写,大致思路是继承自SQLiteOpenHelper写一个数据库操作子类,然后重写onCreate方法,写上数据库的建表语句,重写onUpgrade方法,写上数据库的升级执行代码,此外还有繁琐的 增、删...

    android sqlite3 数据库操作大全

    这个本来是为了自己通讯录项目所设计的,但因为某些原因,没有使用上,今天被我发现,删除可惜,特此把它贡献出来,里面数据库的增删改查各个方法我都写了,还有我在MainActivity对我所写的各个方法都写了测试实例,...

    android数据库SQLite通用类

    通用的SQLite数据库操作类,将增删改查集成,其他继承该类即可

    Android Sqlite操作类(原创)

    现用项目中Sqlite操作类, 1.数据库初始化 2.数据库版本升级 3.从表中查询数据,并返回ArrayList,简单操作不需要建类 4.单一行查询返回、int 返回、string查询返回

    Android例子源码解决多线程读写sqlite数据库锁定问题

    对于这样的问题,解决的办法就是keep single sqlite connection,保持单个SqliteOpenHelper实例,同时对所有数据库操作的方法添加synchronized关键字。完美解决sqlite的 database locked 或者是 error 5: database ...

    Android 数据库 SQlite 范例 SQLiteOpenHelper

    对Android数据库SQlite的基本操作,打开或新建数据库,增,删,改,查。 SQLiteOpenHelper类的运用。 ListView的运用和适配器的使用。 Menu键的使用。

    Android利用listview控件操作SQLite数据库实例

    Android为了操作SQlite数据库,提供了SQLiteDatabase类,其内封装了insert 、delete、update 、query 、执行SQL命令等操作。同时又为SQLiteDatabase提供了一个辅助类,SQLiteOpenHelper。它提供了两个重要的方法,...

    AndroidSQLite封装类

    利用Java反射机制实现Android数据库操作的封装,不用频繁对数据库进行操作,定义好一个实例类后,只需新增一行代码就能实现根据类名映射出相关的数据表名,列名,和相关的增删改查工作。类似于J2EE中的 Hibernate...

    Android代码-Android SQLite 数据库工具集合

    轻量的 Android SQLite 数据库工具集合, 适合用SQLite做一些数据存储的项目. 根据Java实体自动生成数据库表. 不需要书写任何SQL语句即可实现对数据库的 创表 增 删 查 改 分页 操作. 所有的操作方法都是静态的...

    sqlite数据库操作

    Android 提供了一个名为 SQLiteDatabase 的类,该类封装了一些操作数据库的 API,使用该类可以完成对数据进行添加(Create)、查询(Retrieve)、更新(Update)和删除(Delete)操作(这些操作简称为 CRUD) 。

    Android SQLite数据库操作代码类分享

    主要介绍了Android SQLite数据库操作代码类分享,本文直接给出实现代码和使用代码,需要的朋友可以参考下

    Android 使用SQLite数据库

    android数据库使用真的很不错 SQLiteOpenHelper 创建数据库和数据库版本管理的辅助类。这是一个抽象类,所以我们一般都有一个SQLiteOpenHelper子类,需要继承实现 • void onCreate(SQLiteDatabase db) 在数据库第...

    android连接SQLite数据库源代码

    DataBaseHelper是一个访问SQLite的助类,提供两个方面的功能 1.getReadableDatebase(),getWriteableDatabase()可以获取SQLiteDatabase对象,通过 2.提供了onCreate()和onUpdate()两个回调函数,允许我们常见和升级...

    Android使用SQLite数据库的简单实例

    1.首先,写一个自己的数据库操作帮助类,这个类继承自Android自带的SQLiteOpenHelper. 2.在自己的DAO层借助自己的Helper写数据库操作的一些方法 3.Activity调用DAO层的数据库操作方法进行操作 下面例子是: 1.Helper...

    Android 对sqlite的封装,实现CRUD

    大家好,个人觉得用Sqlite数据库时,经常需要进行机械性的CRUD操作,故对其进行了一下封装,希望能起到抛砖引玉的作用。 目的:封装共有的CRUD 下面简单的说一下使用步骤,如果觉得多余,可以无视。 1. 实现自己...

    Android中SQLite数据库小结

    Android提供了一个名为SQLiteDatabase的类,该类封装了一些操作数据库的API,使用该类可以完成对数据进行添加(Create)、查询(Retrieve)、更新(Update)和删除(Delete)操作(这些操作简称为CRUD)  SQLite 目前支持...

    C#解决SQlite并发异常问题的方法(使用读写锁)

    使用C#访问sqlite时,常会遇到多线程并发导致SQLITE数据库损坏的问题。 SQLite是文件级别的数据库,其锁也是文件级别的:多个线程可以同时读,但是同时只能有一个线程写。Android提供了SqliteOpenHelper类,加入Java...

    Android SQLite数据库基本操作方法

    那么就来看一下在Android程序中怎么去操作SQLite数据库来实现一些需求的吧,仍然以一个小例子开始: 在创建Android项目之前,我们应该想一下我们要定义的数据库的相关信息和里面的表格的相关信息,为了日后数据库...

Global site tag (gtag.js) - Google Analytics