安卓本身自带数据,一般用于保存一些数据。操作数据库首先要创建,其次是增删改查。看过诸多网友的介绍,现简单的总结如下:(再次感谢大家的分享)代码奉上:

package com.myapplication.sql;import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;/*** Created by lake* 此类的功能:第三页的缓存数据的库*/
public class SQLiteHelper extends SQLiteOpenHelper {private final static String DATABASE_NAME = "Library";private final static int DATABASE_VERSION = 1;private final static String TABLE_NAME = "msg";//创建数据库,里面添加了3个参数,分别是:Msgone VARCHAR类型,30长度当然这了可以自定义//Msgtwo VARCHAR(20)   Msgthree VARCHAR(30))  NOT NULL不能为空String sql = "CREATE TABLE " + TABLE_NAME+ "(_id INTEGER PRIMARY KEY,"+ " Msgone VARCHAR(30)  NOT NULL,"+ " Msgtwo VARCHAR(20),"+ " Msgthree VARCHAR(30))";//构造函数,创建数据库public SQLiteHelper(Context context) {super(context, DATABASE_NAME, null, DATABASE_VERSION);}//建表@Overridepublic void onCreate(SQLiteDatabase db) {db.execSQL(sql);}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {String sql = "DROP TABLE IF EXISTS " + TABLE_NAME;db.execSQL(sql);onCreate(db);}//获取游标public Cursor select() {SQLiteDatabase db = this.getReadableDatabase();Cursor cursor = db.query(TABLE_NAME, null, null, null, null, null, null);return cursor;}//插入一条记录public long insert(String msg1,String msg2,String msg3 ) {SQLiteDatabase db = this.getWritableDatabase();ContentValues cv = new ContentValues();cv.put("Msgone", msg1);cv.put("Msgtwo", msg2);cv.put("Msgthree", msg3);long row = db.insert(TABLE_NAME, null, cv);return row;}//根据条件查询public Cursor query(String[] args) {SQLiteDatabase db = this.getReadableDatabase();Cursor cursor = db.rawQuery("SELECT * FROM "+TABLE_NAME+" WHERE BookName LIKE ?", args);return cursor;}//删除记录public void delete(int id) {SQLiteDatabase db = this.getWritableDatabase();String where ="_id = ?";String[] whereValue = { Integer.toString(id) };db.delete(TABLE_NAME, where, whereValue);}//更新记录public void update(int id, String msg1,String msg2,String msg3 ) {SQLiteDatabase db = this.getWritableDatabase();String where = "_id = ?";String[] whereValue = { Integer.toString(id) };ContentValues cv = new ContentValues();cv.put("Msgone", msg1);cv.put("Msgtwo", msg2);cv.put("Msgthree", msg3);db.update(TABLE_NAME, cv, where, whereValue);}
}

好,数据库创建完毕,剩下的就是如何使用了

但你网络请求到数据之后,可以定义一个方法:

addRec(数据);
这个方法如果每次网络请求都要调用的话,为了防止数据库里的数据重复,需要根据自己的情况删除数据。切记切记切记!!!

一般来说,这个数据就是一个实体类,我们早addRec的方法里循环它

for (int i = 0; i < movies.size(); i++) {//这里只是添加了一个数据,如果需要多个数据,那么在创建数据库表的时候可以增加字段。helper.insert(movies.get(i).getThumbnail(), "a", "b");//重新加载数据cursor.requery();
}

然后我们在没有网络的时候,也需要展示数据,就可以从数据库里获取了

先判断数据库里是否有数据,否则你懂得。

这里我保存了2个数据,所以只取2个

if (cursor.moveToNext()){cursor.moveToPosition(0);String picone = cursor.getString(1);cursor.moveToPosition(1);String pictwo = cursor.getString(1);//把数据放到实体类里movies1.add(new Movies.ResultBean(picone));movies1.add(new Movies.ResultBean(pictwo));//展示图片,你也可以做别的rv.setAdapter(new RVAdapter(getActivity(), movies1));
}

数据库基本方法:

1,获取某行的某个值:其中0表示第几行,默认是从第0行开始,1表示第几个,从第一个开始

cursor.moveToPosition(0);          

cursor.getString(1);

cursor.isClosed();//如果为TRUE表示该游标已关闭

cursor.close();//关闭游标,且释放资源

cursor.getColumnCount();//返回所有列的总数

cursor.getColumnNames();//返回一个字符串数组的列名,即将列名全部返回到一个字符串数组中

cursor.getCount();//返回Cursor中的行数

cursor.moveToFirst();//移动光标到第一行

cursor.moveToLast();//移动光标到最后一行

cursor.moveToNext();//移动光标到下一行

cursor.moveToPrevious();//移动光标到上一行

int columnIndex = 0;

int position = 0;

cursor.getColumnName(columnIndex);//从给定的索引返回列名

cursor.moveToPosition(position);//移动光标到给定位置

2,循环

while(cursor.moveToNext()){

//moveToNext()移动光标到下一行

    HashMap<String,String> HM = new HashMap<String,String>();

    String id = cursor.getString(cursor.getColumnIndex("cityid"));

    String name = cursor.getString(cursor.getColumnIndex("cityname"));

    HM.put("cityid", id);

    HM.put("cityname", name);

    AL.add(HM);

}

3,判读是否为空

if (cursor.moveToFirst() == false)

{

Toast.makeText(mContext, "您的表中无数据!!!", Toast.LENGTH_SHORT).show();

}

安卓简单的操作数据库相关推荐

  1. android ormlite 查询,Android—Ormlite框架简单的操作数据库

    大家在Android项目中或多或少的都会使用数据库,为了提高我们的开发效率,当然少不了数据库ORM框架了,尤其是某些数据库操作特别频繁的app:本篇博客将详细介绍ORMLite的简易用法. 下面开始介 ...

  2. Python学习 | pymysql操作数据库?真原生...

    转载本文章请标明作者和出处 本文出自<Darwin的程序空间> 能阻止你成功的人,只有你自己 vlog 时间:2020年03月08日-2020年03月09日 ------晚上三个小时 学习 ...

  3. 安卓案例:利用SQLiteOpenHelper操作数据库及表

    安卓案例:利用SQLiteOpenHelper操作数据库及表 一.运行效果 二.涉及知识点 1.利用SQLiteOpenHelper类创建与升级数据库 这个类是一个抽象类,我们必须继承该类创建一个子类 ...

  4. 简单的DOS命令操作数据库

    简单的DOS命令操作数据库 启动服务:net start 数据库服务名字 关闭服务:net stop 数据库服务名字 连接数据库:mysql -u用户名 -p密码 show databases -- ...

  5. 批处理 操作mysql_超简单使用批处理(batch)操作数据库

    超简单使用批处理(batch)操作数据库 批处理(batch)是什么 批处理的执行就好比快递员的工作: 未使用批处理的时候,快递员一次从分发点将一件快递发给客户: 使用批处理,则是快递员将所有要派送的 ...

  6. php django mysql配置文件_Mysql学习Django+mysql配置与简单操作数据库实例代码

    <Mysql学习Django+mysql配置与简单操作数据库实例代码>要点: 本文介绍了Mysql学习Django+mysql配置与简单操作数据库实例代码,希望对您有用.如果有疑问,可以联 ...

  7. cad与连接mySQL数据库_跨服务器操作数据库?其实很简单!(下)

    之前一篇文章一步一步的教小伙伴们如何建立SQL Server的数据库链接(DBLINK),详细步骤可查看上篇:跨服务器操作数据库?其实很简单!(上) 今天我们来教大家如何连接MYSQL和Oracle的 ...

  8. nodejs操作sqlserver数据_nodejs基于mssql模块连接sqlserver数据库的简单封装操作示例...

    本文实例讲述了nodejs基于mssql模块连接sqlserver数据库的简单封装操作.分享给大家供大家参考,具体如下: 注意:开启sqlserver服务器允许远程连接的步骤,自行百度,很多经验,no ...

  9. 安卓案例:利用SQLiteDatabase操作数据库与表

    安卓案例:利用SQLiteDatabase操作数据库与表 一.SQLite简介 SQLite是D. Richard Hipp用 C语言编写 的开源嵌入式数据库引擎.它支持大多数的SQL92标准,并且可 ...

最新文章

  1. windows10+Python3.7安装dlib库进行面部标志识别
  2. adb指令没有数据线,在WLAN下也可使用
  3. 决心书之学习linux高级运维
  4. NiceScroll文档阅读笔记-NiceScroll(3.7.6)基本使用
  5. TransE:Translating Embedding多元关系数据嵌入(知识图谱嵌入)2013 NIPS
  6. git本地给远程仓库创建分支
  7. 最大似然估计和最大后验估计
  8. pythonsample_python sample code | 学步园
  9. 使用python编写聊天小程序
  10. html获取屏幕的高度,js如何获取屏幕高度
  11. C语言编程练习----山东理工大学ACM平台实验一A--I题解
  12. 串联型与并联型电压基准的区别
  13. Error Based Injection和sql注入函数
  14. 阿里巴巴社招笔试题——多线程打印
  15. BUGKU-成绩查询
  16. JointJS+新的MindMap应用程序
  17. 怎么把英文文献转译为中文?
  18. php crypt md5,PHP crypt()-返回的md5哈希
  19. ORA-20005 统计信息被锁定
  20. BUUCTF:[安洵杯 2019]吹着贝斯扫二维码

热门文章

  1. MFC WebBrowser获取网面完整源码 WebBrowser获取网面完整HTML
  2. 微信转发(分享)功能
  3. Axure可视化动态数据图表6合1元件库
  4. java 发送邮件 outlook_JavaMail发送带图片正文的邮件,outlook等邮箱不显示的问题 | 学步园...
  5. 关于解决错误apt --fix-broken install
  6. 科技云报道:超融合遍地开花,用户离“云计算自由”却依然很远?
  7. 数据存储大讲堂:谈磁盘列阵与RAID技巧
  8. 没见面,未说话,TA却在风雨里更懂你
  9. 【深度学习入门:基于Python的理论与实现】书本学习笔记 第三章 神经网络
  10. PS中括号不能调整画笔或仿章大小