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

 更新时间:2015年03月20日 11:21:16   投稿:junjie  
这篇文章主要介绍了Android SQLite数据库操作代码类分享,本文直接给出实现代码和使用代码,需要的朋友可以参考下

使用示例:

package cn.hackcoder.beautyreader.db;

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

/**
 * Created by hackcoder on 15-1-25.
 */
public class DataBaseHelper extends SQLiteOpenHelper {
  private static final String dbName = "sample.db";
  private static int dbVersion = 1;

  public DataBaseHelper(Context context) {
    super(context,dbName,null,dbVersion);
  }

  @Override
  public void onCreate(SQLiteDatabase db) {
    Log.d("===========","数据库初始化");
    //建表
    String sql = "create table if not exists tb_article(id integer primary key autoincrement,title varchar(50),content TEXT,url varchar(50),page integer)";
    db.execSQL(sql);
  }

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

  }
}

类源码:

package cn.hackcoder.beautyreader.service;

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

import java.util.ArrayList;
import java.util.List;

import cn.hackcoder.beautyreader.db.DataBaseHelper;
import cn.hackcoder.beautyreader.model.Article;

/**
 * Created by hackcoder on 15-1-25.
 */
public class ArticleService {

  private DataBaseHelper dataBaseHelper;
  private SQLiteDatabase readableDatabase;
  private SQLiteDatabase writableDatabase;

  public ArticleService(Context context) {
    dataBaseHelper = new DataBaseHelper(context);
  }

  public void add(Article article) {
    String sql = "insert into tb_article(id,title,content,url,page) values(?,?,?,?,?)";
    getReadableDatabase().execSQL(sql, new Object[]{null, article.getTitle(), article.getContent(), article.getUrl(), article.getPage()});
  }

  public void delete(int id) {
    String sql = "delete from tb_article where id =?";
    getReadableDatabase().execSQL(sql, new Object[]{id});
  }

  public void deleteAll() {
    String sql = "delete from tb_article";
    getReadableDatabase().execSQL(sql,null);
  }
  public void update(Article article) {
    String sql = "update tb_article set title=?,content=?,url=?,page = ? where id =?";
    getReadableDatabase().execSQL(sql, new Object[]{article.getTitle(), article.getContent(), article.getUrl(), article.getPage(), article.getId()});
  }

  public void updateContentOfUrl(String url,String content){
    String sql = "update tb_article set content=? where url =?";
    getReadableDatabase().execSQL(sql, new Object[]{content,url});
  }
  public Article find(int id) {
    Article article = new Article();
    String sql = "select id,title,content,url,page from tb_article where id = ?";
    Cursor cursor = getReadableDatabase().rawQuery(sql, new String[]{String.valueOf(id)});
    if (cursor.moveToNext()) {
      article.setId(id);
      article.setTitle(cursor.getString(cursor.getColumnIndex("title")));
      article.setContent(cursor.getString(cursor.getColumnIndex("content")));
      article.setUrl(cursor.getString(cursor.getColumnIndex("url")));
      article.setPage(cursor.getInt(cursor.getColumnIndex("page")));
      cursor.close();
      return article;
    }
    cursor.close();
    return null;
  }

  public List<Article> findByUrl(String url) {
    List<Article> articles = new ArrayList<Article>();
    String sql = "select id,title,content,url,page from tb_article where url = ?";
    Cursor cursor = getReadableDatabase().rawQuery(sql, new String[]{url});
    while (cursor.moveToNext()) {
      Article article = new Article();
      article.setId(cursor.getInt(cursor.getColumnIndex("id")));
      article.setTitle(cursor.getString(cursor.getColumnIndex("title")));
      article.setContent(cursor.getString(cursor.getColumnIndex("content")));
      article.setUrl(cursor.getString(cursor.getColumnIndex("url")));
      article.setPage(cursor.getInt(cursor.getColumnIndex("page")));
      articles.add(article);
    }
    cursor.close();
    return articles;
  }
  public int getCountOfPage(int page){
    String sql = "select count(*) from tb_article where page = ?";
    Cursor cursor = getReadableDatabase().rawQuery(sql, new String[]{String.valueOf(page)});
    cursor.moveToFirst();
    int count = cursor.getInt(0);
    cursor.close();
    return count;
  }

  public List<Article> getArticlesOfPage(int curPage){
    List<Article> articles = new ArrayList<Article>();
    String sql = "select id,title,content,url,page from tb_article where page = ?";
    Cursor cursor = getReadableDatabase().rawQuery(sql,new String[]{String.valueOf(curPage)});
    while(cursor.moveToNext()){
      Article article = new Article();
      article.setId(cursor.getInt(cursor.getColumnIndex("id")));
      article.setTitle(cursor.getString(cursor.getColumnIndex("title")));
      article.setContent(cursor.getString(cursor.getColumnIndex("content")));
      article.setUrl(cursor.getString(cursor.getColumnIndex("url")));
      article.setPage(cursor.getInt(cursor.getColumnIndex("page")));
      articles.add(article);
    }
    cursor.close();
    return articles;
  }
  public int countOfSum() {
    String sql = "select count(*) from tb_article";
    Cursor cursor = getReadableDatabase().rawQuery(sql, null);
    cursor.moveToFirst();
    int count = cursor.getInt(0);
    cursor.close();
    return count;
  }

  public List<Article> getArticles(int start, int pageSize) {
    List<Article> articles = new ArrayList<Article>();
    String sql = "select id,title,content,url,page from tb_article limit ?,?";
    Cursor cursor = getReadableDatabase().rawQuery(sql,new String[]{String.valueOf(start),String.valueOf(pageSize)});
    while(cursor.moveToNext()){
      Article article = new Article();
      article.setId(cursor.getInt(cursor.getColumnIndex("id")));
      article.setTitle(cursor.getString(cursor.getColumnIndex("title")));
      article.setContent(cursor.getString(cursor.getColumnIndex("content")));
      article.setUrl(cursor.getString(cursor.getColumnIndex("url")));
      article.setPage(cursor.getInt(cursor.getColumnIndex("page")));
      articles.add(article);
    }
    cursor.close();
    return articles;
  }

  public void closeDB() {
    if (readableDatabase != null && readableDatabase.isOpen()) {
      readableDatabase.close();
    }
    if (writableDatabase != null && writableDatabase.isOpen()) {
      writableDatabase.close();
    }
  }

  public SQLiteDatabase getReadableDatabase() {
    return dataBaseHelper.getReadableDatabase();
  }

  public SQLiteDatabase getWritableDatabase() {
    return dataBaseHelper.getWritableDatabase();
  }
}

相关文章

  • Angular.JS中的指令与参数详解

    Angular.JS中的指令与参数详解

    指令(Directives)是所有AngularJS应用最重要的部分。而指令难点就在于参数,所以下面这篇文章主要给大家介绍了Angular.JS中指令与参数的相关资料,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-03-03
  • android开发中常用的Eclipse快捷键详细整理

    android开发中常用的Eclipse快捷键详细整理

    android开发中常用的Eclipse快捷键详细整理方便查找,需要的朋友可以了解下
    2012-12-12
  • 详解Android性能优化之内存泄漏

    详解Android性能优化之内存泄漏

    内存泄漏(memory leak)是指由于疏忽或错误造成程序未能释放已经不再使用的内存。本篇文章主要介绍了Android性能优化之内存泄漏,有兴趣的可以了解一下。
    2016-12-12
  • Android编程之杀毒的实现原理及具体实例

    Android编程之杀毒的实现原理及具体实例

    这篇文章主要介绍了Android编程之杀毒的实现原理及具体实例,结合实例形式分析了Android杀毒功能的原理与简单实现技巧,需要的朋友可以参考下
    2015-12-12
  • Android编程实现canvas绘制饼状统计图功能示例【自动适应条目数量与大小】

    Android编程实现canvas绘制饼状统计图功能示例【自动适应条目数量与大小】

    这篇文章主要介绍了Android编程实现canvas绘制饼状统计图功能,可实现自动适应条目数量与大小的功能,涉及Android基于canvas的图形绘制相关操作技巧,需要的朋友可以参考下
    2017-01-01
  • Android UI新组件学习和使用

    Android UI新组件学习和使用

    在本篇文章中我们给大家总结了关于学习Android UI新组件的知识点总结以及注意点详解,有需要的朋友跟着学习下。
    2018-03-03
  • Android省电的秘密之JobScheduler

    Android省电的秘密之JobScheduler

    JobScheduler是Android L版本新引入的API,JobScheduler,顾名思义,是用来调度工作。工作被调度的条件包括网络变化,充电插拔,周期执行等。谷歌为什么要引入这个新的API呢?是为了省电而制定的一种规范。下面跟着小编一起来看下吧
    2017-02-02
  • Flutter中如何加载并预览本地的html文件的方法

    Flutter中如何加载并预览本地的html文件的方法

    这篇文章主要介绍了Flutter中如何加载并预览本地的html文件的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • Kotlin基础学习之循环和异常

    Kotlin基础学习之循环和异常

    最近在学习kotlin,Kotlin 是一个基于 JVM 的新的编程语言,下面这篇文章主要给大家介绍了关于Kotlin基础学习之循环和异常的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-12-12
  • android开发环境中SDK文件夹下的所需内容详解

    android开发环境中SDK文件夹下的所需内容详解

    在本篇文章里小编给大家整理的是关于android开发环境中SDK文件夹下的所需内容详解,有兴趣的朋友们参考学习下。
    2019-09-09

最新评论