最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android SQLite數(shù)據(jù)庫操作代碼類分享

 更新時間:2015年03月20日 11:21:16   投稿:junjie  
這篇文章主要介紹了Android SQLite數(shù)據(jù)庫操作代碼類分享,本文直接給出實現(xiàn)代碼和使用代碼,需要的朋友可以參考下

使用示例:

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("===========","數(shù)據(jù)庫初始化");
    //建表
    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();
  }
}

相關(guān)文章

  • Angular.JS中的指令與參數(shù)詳解

    Angular.JS中的指令與參數(shù)詳解

    指令(Directives)是所有AngularJS應(yīng)用最重要的部分。而指令難點就在于參數(shù),所以下面這篇文章主要給大家介紹了Angular.JS中指令與參數(shù)的相關(guān)資料,相信對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。
    2017-03-03
  • android開發(fā)中常用的Eclipse快捷鍵詳細整理

    android開發(fā)中常用的Eclipse快捷鍵詳細整理

    android開發(fā)中常用的Eclipse快捷鍵詳細整理方便查找,需要的朋友可以了解下
    2012-12-12
  • 詳解Android性能優(yōu)化之內(nèi)存泄漏

    詳解Android性能優(yōu)化之內(nèi)存泄漏

    內(nèi)存泄漏(memory leak)是指由于疏忽或錯誤造成程序未能釋放已經(jīng)不再使用的內(nèi)存。本篇文章主要介紹了Android性能優(yōu)化之內(nèi)存泄漏,有興趣的可以了解一下。
    2016-12-12
  • Android編程之殺毒的實現(xiàn)原理及具體實例

    Android編程之殺毒的實現(xiàn)原理及具體實例

    這篇文章主要介紹了Android編程之殺毒的實現(xiàn)原理及具體實例,結(jié)合實例形式分析了Android殺毒功能的原理與簡單實現(xiàn)技巧,需要的朋友可以參考下
    2015-12-12
  • Android編程實現(xiàn)canvas繪制餅狀統(tǒng)計圖功能示例【自動適應(yīng)條目數(shù)量與大小】

    Android編程實現(xiàn)canvas繪制餅狀統(tǒng)計圖功能示例【自動適應(yīng)條目數(shù)量與大小】

    這篇文章主要介紹了Android編程實現(xiàn)canvas繪制餅狀統(tǒng)計圖功能,可實現(xiàn)自動適應(yīng)條目數(shù)量與大小的功能,涉及Android基于canvas的圖形繪制相關(guān)操作技巧,需要的朋友可以參考下
    2017-01-01
  • Android UI新組件學(xué)習和使用

    Android UI新組件學(xué)習和使用

    在本篇文章中我們給大家總結(jié)了關(guān)于學(xué)習Android UI新組件的知識點總結(jié)以及注意點詳解,有需要的朋友跟著學(xué)習下。
    2018-03-03
  • Android省電的秘密之JobScheduler

    Android省電的秘密之JobScheduler

    JobScheduler是Android L版本新引入的API,JobScheduler,顧名思義,是用來調(diào)度工作。工作被調(diào)度的條件包括網(wǎng)絡(luò)變化,充電插拔,周期執(zhí)行等。谷歌為什么要引入這個新的API呢?是為了省電而制定的一種規(guī)范。下面跟著小編一起來看下吧
    2017-02-02
  • Flutter中如何加載并預(yù)覽本地的html文件的方法

    Flutter中如何加載并預(yù)覽本地的html文件的方法

    這篇文章主要介紹了Flutter中如何加載并預(yù)覽本地的html文件的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2019-11-11
  • Kotlin基礎(chǔ)學(xué)習之循環(huán)和異常

    Kotlin基礎(chǔ)學(xué)習之循環(huán)和異常

    最近在學(xué)習kotlin,Kotlin 是一個基于 JVM 的新的編程語言,下面這篇文章主要給大家介紹了關(guān)于Kotlin基礎(chǔ)學(xué)習之循環(huán)和異常的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-12-12
  • android開發(fā)環(huán)境中SDK文件夾下的所需內(nèi)容詳解

    android開發(fā)環(huán)境中SDK文件夾下的所需內(nèi)容詳解

    在本篇文章里小編給大家整理的是關(guān)于android開發(fā)環(huán)境中SDK文件夾下的所需內(nèi)容詳解,有興趣的朋友們參考學(xué)習下。
    2019-09-09

最新評論

文登市| 五家渠市| 永安市| 嘉荫县| 永德县| 清水河县| 潍坊市| 龙州县| 江达县| 边坝县| 浪卡子县| 嘉定区| 临桂县| 灵宝市| 富源县| 兴仁县| 高州市| 将乐县| 隆林| 托里县| 山西省| 兴和县| 深水埗区| 安康市| 罗江县| 岳阳市| 阿克苏市| 六枝特区| 微博| 犍为县| 新建县| 聂拉木县| 沁源县| 安吉县| 洛南县| 孝义市| 广东省| 新沂市| 贵州省| 渭南市| 酒泉市|