SQLite操作

来源:互联网 发布:淘宝退换货说明怎么写 编辑:程序博客网 时间:2024/05/20 19:46

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);    }}
原创粉丝点击