SQLite操作

Android提供了创建和是用SQLite数据库的API。SQLiteDatabase代表一个数据库对象,提供了操作数据库的一些方法。

要求:

使用SQLite数据库,将某条新闻(包含标题时间内容)插入到数据库中。

实现:

SQLiteOpenHelper类是SQLiteDatabase一个辅助类。这个类主要生成一 个数据库,并对数据库的版本进行管理。当在程序当中调用这个类的方法getWritableDatabase()或者 getReadableDatabase()方法的时候,如果当时没有数据,那么Android系统就会自动生成一个数据库。

package com.example.hades.toutiao;

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

/**
 * Created by hades on 2017/6/17.
 */

public class NewsListDB extends SQLiteOpenHelper {

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

    public void onCreate(SQLiteDatabase db) {
        String sql = "create table if not exists list(_id integer primary key autoincrement,title text,desc text,content text,pubdate text,img text)";
        Log.i("Tag", "create Database");
        db.execSQL(sql);
    }

    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        Log.i("Tag", "update Databases");
    }
}

创建

    public void Creat() {
        NewsListDB listDB = new NewsListDB(context, "news.db", null, 2);
        SQLiteDatabase db = listDB.getReadableDatabase();
        Log.i("Tag", "Creat");
    }

升级

    public void Update() {
        NewsListDB listDB = new NewsListDB(context, "news.db", null, 2);
        SQLiteDatabase db = listDB.getReadableDatabase();
        Log.i("Tag", "Update");
    }

插入
注意corsor的关闭

    public void Insert(String t, String d, String c, String i, String p) {
        NewsListDB listDB = new NewsListDB(context, "news.db", null, 2);
        SQLiteDatabase db = listDB.getWritableDatabase();
        ContentValues cv = new ContentValues();
        cv.put("title", t);
        cv.put("desc", d);
        cv.put("content", c);
        cv.put("img", i);
        cv.put("pubdate", p);
        db.insertOrThrow("list", null, cv);
        Log.i("Tag", "Indert");
        db.close();
    }

查询
返回一个map对象

    public List<Map<String, String>> Query() {
        NewsListDB dbHelper = new NewsListDB(context, "news.db", null, 2);
        SQLiteDatabase db = dbHelper.getReadableDatabase();
        Cursor cursor = db.query("list", new String[]{"title", "desc", "content", "img", "pubdate"}, null, null, null, null, null);
        List<Map<String, String>> data = new ArrayList<Map<String, String>>();
        while (cursor.moveToNext()) {
            Map map = new HashMap<String, String>();
            map.put("news_title", cursor.getString(cursor.getColumnIndex("title")));
            map.put("news_desc", cursor.getString(cursor.getColumnIndex("desc")));
            map.put("news_img", cursor.getString(cursor.getColumnIndex("img")));
            map.put("news_content", cursor.getString(cursor.getColumnIndex("content")));
            map.put("news_pubdate", cursor.getString(cursor.getColumnIndex("pubdate")));
            data.add(map);
        }
        cursor.close();
        db.close();
        return data;
    }

删除

public void Delete() {
        NewsListDB listDB = new NewsListDB(context, "news.db", null, 2);
        SQLiteDatabase db = listDB.getReadableDatabase();
        String whereClauses = "id=?";
        String[] whereArgs = {String.valueOf(2)};
        db.delete("stu_table", whereClauses, whereArgs);
    }

完整AddLikeItem类:

package com.example.hades.toutiao;

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

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Created by hades on 2017/6/17.
 */

public class AddLikeItem {
    public Context context;
    public String newsTitle, newsDesc, newsContent, newsImg, newsPubDate;


    public AddLikeItem(Context context) {
        this.context = context;
        Log.i("Tag", "context2" + String.valueOf(context));

    }


    public void Creat() {
        NewsListDB listDB = new NewsListDB(context, "news.db", null, 2);
        SQLiteDatabase db = listDB.getReadableDatabase();
        Log.i("Tag", "Creat");
    }

    public void Update() {
        NewsListDB listDB = new NewsListDB(context, "news.db", null, 2);
        SQLiteDatabase db = listDB.getReadableDatabase();
        Log.i("Tag", "Update");
    }

    public void Insert(String t, String d, String c, String i, String p) {
        NewsListDB listDB = new NewsListDB(context, "news.db", null, 2);
        SQLiteDatabase db = listDB.getWritableDatabase();
        ContentValues cv = new ContentValues();
        cv.put("title", t);
        cv.put("desc", d);
        cv.put("content", c);
        cv.put("img", i);
        cv.put("pubdate", p);
        db.insertOrThrow("list", null, cv);
        Log.i("Tag", "Indert");
        db.close();
    }

    public List<Map<String, String>> Query() {
        NewsListDB dbHelper = new NewsListDB(context, "news.db", null, 2);
        SQLiteDatabase db = dbHelper.getReadableDatabase();
        Cursor cursor = db.query("list", new String[]{"title", "desc", "content", "img", "pubdate"}, null, null, null, null, null);
        List<Map<String, String>> data = new ArrayList<Map<String, String>>();
        while (cursor.moveToNext()) {
            Map map = new HashMap<String, String>();
            map.put("news_title", cursor.getString(cursor.getColumnIndex("title")));
            map.put("news_desc", cursor.getString(cursor.getColumnIndex("desc")));
            map.put("news_img", cursor.getString(cursor.getColumnIndex("img")));
            map.put("news_content", cursor.getString(cursor.getColumnIndex("content")));
            map.put("news_pubdate", cursor.getString(cursor.getColumnIndex("pubdate")));
            data.add(map);
        }
        cursor.close();
        db.close();
        return data;
    }

    public void Delete() {
        NewsListDB listDB = new NewsListDB(context, "news.db", null, 2);
        SQLiteDatabase db = listDB.getReadableDatabase();
        String whereClauses = "id=?";
        String[] whereArgs = {String.valueOf(2)};
        db.delete("stu_table", whereClauses, whereArgs);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值