SQLite操作

前端之家收集整理的这篇文章主要介绍了SQLite操作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

要求:

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

实现:

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

  1. package com.example.hades.toutiao;
  2.  
  3. import android.content.Context;
  4. import android.database.sqlite.sqliteDatabase;
  5. import android.database.sqlite.sqliteOpenHelper;
  6. import android.util.Log;
  7.  
  8. /** * Created by hades on 2017/6/17. */
  9.  
  10. public class NewsListDB extends sqliteOpenHelper {
  11.  
  12. public NewsListDB(Context context,String name,sqliteDatabase.CursorFactory factory,int version) {
  13. super(context,name,factory,version);
  14. }
  15.  
  16. public void onCreate(sqliteDatabase db) {
  17. String sql = "create table if not exists list(_id integer primary key autoincrement,title text,desc text,content text,pubdate text,img text)";
  18. Log.i("Tag","create Database");
  19. db.execsql(sql);
  20. }
  21.  
  22. public void onUpgrade(sqliteDatabase db,int oldVersion,int newVersion) {
  23. Log.i("Tag","update Databases");
  24. }
  25. }

创建

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

升级

  1. public void Update() {
  2. NewsListDB listDB = new NewsListDB(context,"Update");
  3. }

插入
注意corsor的关闭

  1. public void Insert(String t,String d,String c,String i,String p) {
  2. NewsListDB listDB = new NewsListDB(context,null,2);
  3. sqliteDatabase db = listDB.getWritableDatabase();
  4. ContentValues cv = new ContentValues();
  5. cv.put("title",t);
  6. cv.put("desc",d);
  7. cv.put("content",c);
  8. cv.put("img",i);
  9. cv.put("pubdate",p);
  10. db.insertOrThrow("list",cv);
  11. Log.i("Tag","Indert");
  12. db.close();
  13. }

查询
返回一个map对象

  1. public List<Map<String,String>> Query() {
  2. NewsListDB dbHelper = new NewsListDB(context,null,2);
  3. sqliteDatabase db = dbHelper.getReadableDatabase();
  4. Cursor cursor = db.query("list",new String[]{"title","desc","content","img","pubdate"},null);
  5. List<Map<String,String>> data = new ArrayList<Map<String,String>>();
  6. while (cursor.moveToNext()) {
  7. Map map = new HashMap<String,String>();
  8. map.put("news_title",cursor.getString(cursor.getColumnIndex("title")));
  9. map.put("news_desc",cursor.getString(cursor.getColumnIndex("desc")));
  10. map.put("news_img",cursor.getString(cursor.getColumnIndex("img")));
  11. map.put("news_content",cursor.getString(cursor.getColumnIndex("content")));
  12. map.put("news_pubdate",cursor.getString(cursor.getColumnIndex("pubdate")));
  13. data.add(map);
  14. }
  15. cursor.close();
  16. db.close();
  17. return data;
  18. }

删除

  1. public void Delete() {
  2. NewsListDB listDB = new NewsListDB(context,2);
  3. sqliteDatabase db = listDB.getReadableDatabase();
  4. String whereClauses = "id=?";
  5. String[] whereArgs = {String.valueOf(2)};
  6. db.delete("stu_table",whereClauses,whereArgs);
  7. }

完整AddLikeItem类:

  1. package com.example.hades.toutiao;
  2.  
  3. import android.content.ContentValues;
  4. import android.content.Context;
  5. import android.database.Cursor;
  6. import android.database.sqlite.sqliteDatabase;
  7. import android.database.sqlite.sqliteOpenHelper;
  8. import android.util.Log;
  9.  
  10. import java.util.ArrayList;
  11. import java.util.HashMap;
  12. import java.util.List;
  13. import java.util.Map;
  14.  
  15. /** * Created by hades on 2017/6/17. */
  16.  
  17. public class AddLikeItem {
  18. public Context context;
  19. public String newsTitle,newsDesc,newsContent,newsImg,newsPubDate;
  20.  
  21.  
  22. public AddLikeItem(Context context) {
  23. this.context = context;
  24. Log.i("Tag","context2" + String.valueOf(context));
  25.  
  26. }
  27.  
  28.  
  29. public void Creat() {
  30. NewsListDB listDB = new NewsListDB(context,"Creat");
  31. }
  32.  
  33. public void Update() {
  34. NewsListDB listDB = new NewsListDB(context,"Update");
  35. }
  36.  
  37. public void Insert(String t,String d,String c,String i,String p) {
  38. NewsListDB listDB = new NewsListDB(context,2);
  39. sqliteDatabase db = listDB.getWritableDatabase();
  40. ContentValues cv = new ContentValues();
  41. cv.put("title",t);
  42. cv.put("desc",d);
  43. cv.put("content",c);
  44. cv.put("img",i);
  45. cv.put("pubdate",p);
  46. db.insertOrThrow("list",cv);
  47. Log.i("Tag","Indert");
  48. db.close();
  49. }
  50.  
  51. public List<Map<String,String>> Query() {
  52. NewsListDB dbHelper = new NewsListDB(context,new String[]{"title",null);
  53. List<Map<String,String>> data = new ArrayList<Map<String,String>>();
  54. while (cursor.moveToNext()) {
  55. Map map = new HashMap<String,String>();
  56. map.put("news_title",cursor.getString(cursor.getColumnIndex("pubdate")));
  57. data.add(map);
  58. }
  59. cursor.close();
  60. db.close();
  61. return data;
  62. }
  63.  
  64. public void Delete() {
  65. NewsListDB listDB = new NewsListDB(context,whereArgs);
  66. }
  67. }

猜你在找的Sqlite相关文章