在Android开发中也有数据库的存在,最近有空,把以前写的一个便签来讲述一下Android中的数据库,跟大家分享分享的,希望对大家有所帮助。

SQLite简介

SQLite,是一款轻量级的关系型数据库。由于它占用的资源非常少,所以在很多嵌入式设备都是用SQLite来存储数据。

SQLite数据库操作和常用的数据库操作差不多;如:MySQL......; 增删改查等语句操作基本相同; 今天给大家Android SQLite语句相关操作的两种方式

首先来看一下我的便签的效果图:(图中操作顺序:查询,添加,修改,删除)

1:创建数据库和表,创建一个类;如下:

public class HelperSQLite extends SQLiteOpenHelper{

    private SQLiteDatabase sqLiteDatabase;

    /***
* 创建数据库
* @param context
*/
public HelperSQLite(Context context){
super(context, UtilDB.DATABASE_NAME, null, UtilDB.DATABASE_VERION);
sqLiteDatabase=this.getWritableDatabase();
} /***
* 创建表
* @param db
*/
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(UtilDB.showCreateSql());
} @Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//用于更新
}
}

2:介绍添加数据的两种方法

        //方式1  SQL语句的方式
String stu_sql="insert into "+UtilDB.DATABASE_TABLE+"("+UtilDB.USER_CONTENT+","+UtilDB.USER_YEAR+","+UtilDB.USER_TIME+") values('"+userContent+"','"+userYear+"','"+userTime+"')";
sqLiteDatabase.execSQL(stu_sql); //方式2
ContentValues contentValues=new ContentValues();
contentValues.put(UtilDB.USER_CONTENT,userContent);
contentValues.put(UtilDB.USER_YEAR,userYear);
contentValues.put(UtilDB.USER_TIME,userTime);
return sqLiteDatabase.insert(UtilDB.DATABASE_TABLE,null,contentValues)>0;//成功返回true

3:删除的两种方式

      String sql = "delete from "+UtilDB.DATABASE_TABLE+" where "+UtilDB.USER_ID+" = "+id;
sqLiteDatabase.execSQL(sql); String sql=UtilDB.USER_ID+"=?";
String[] contentValuesArray=new String[]{String.valueOf(id)};
return sqLiteDatabase.delete(UtilDB.DATABASE_TABLE,sql,contentValuesArray)>0;//成功返回true

4:修改的两种方式

       //方式1
String sql = "update "+UtilDB.DATABASE_TABLE+" set "+UtilDB.USER_CONTENT+" = '"+content+"',"
+UtilDB.USER_YEAR+" = '"+userYear+"',"+UtilDB.USER_TIME+"='"+userTime+"' where "+UtilDB.USER_ID+" = "+id;
sqLiteDatabase.execSQL(sql); //方式2
ContentValues contentValues=new ContentValues();
contentValues.put(UtilDB.USER_CONTENT,content);
contentValues.put(UtilDB.USER_YEAR,userYear);
contentValues.put(UtilDB.USER_TIME,userTime);
String sql=UtilDB.USER_ID+"=?";
String[] strings=new String[]{id};
return sqLiteDatabase.update(UtilDB.DATABASE_TABLE,contentValues,sql,strings)>0; //成功返回true

5:查询数据  便签中  使用的是降序排列的

  Cursor cursor=sqLiteDatabase.query(UtilDB.DATABASE_TABLE,null,null,null,null,null,UtilDB.USER_ID+" desc");//条件查询降序排序   

得到数据:

方式1:

List<UserInfo> list=new ArrayList<UserInfo>();
Cursor cursor=sqLiteDatabase.query(UtilDB.DATABASE_TABLE,null,null,null,null,null,UtilDB.USER_ID+" desc");
if (cursor!=null){
while (cursor.moveToNext()){
UserInfo userInfo=new UserInfo();
userInfo.setId(String.valueOf(cursor.getInt(cursor.getColumnIndex(UtilDB.USER_ID))));
userInfo.setUserContent(cursor.getString(cursor.getColumnIndex(UtilDB.USER_CONTENT)));
userInfo.setUserYear(cursor.getString(cursor.getColumnIndex(UtilDB.USER_YEAR)));
userInfo.setUserTime(cursor.getString(cursor.getColumnIndex(UtilDB.USER_TIME)));
list.add(userInfo);
}
}

    方式2:通过游标得到数据

List<UserInfo> list=new ArrayList<UserInfo>();
Cursor cursor=sqLiteDatabase.query(UtilDB.DATABASE_TABLE,null,null,null,null,null,UtilDB.USER_ID+" desc");
if (cursor!=null){
while (cursor.moveToNext()){//通过游标得到数据
UserInfo userInfo=new UserInfo();
userInfo.setId(String.valueOf(cursor.getInt()));
userInfo.setUserContent(cursor.getString());
userInfo.setUserYear(cursor.getString());
userInfo.setUserTime(cursor.getString());
list.add(userInfo);
}
}

由于代码太多,就不一一贴出来了,直接下载即可, 源码点击下载

不足之处请留言指正!有问题的可以给我留言!谢谢!

Android我的便签-----SQLite的使用方法的更多相关文章

  1. jQuery实现tag便签去重效果的方法

    本文实例讲述了jQuery实现tag便签去重效果的方法.分享给大家供大家参考.具体实现方法如下: html代码如下: <head><script type="text/ja ...

  2. Android再学习-便签开发小结-20141119

    这几天的便签开发,首先遇到的问题就是数据库操作问题.现在已经可以读写数据库了,并能将数据放在正确的位置显示. 专门建立了一个数据库操作的包,命名为"...database".新建一 ...

  3. Android学习---如何创建数据库,SQLite(onCreate,onUpgrade方法)和SQLiteStudio的使用

    一.android中使用什么数据库? SQLite是遵守ACID的关系数据库管理系统,它包含在一个相对小的C程式庫中.它是D.RichardHipp建立的公有领域项目.SQLite 是一个软件库,实现 ...

  4. Android自动化测试 - MonkeyRunner(二) 锤子便签测试脚本

    来源于:http://testerhome.com/topics/878 # encoding=utf-8 #导入python中自带的time模块和sys模块,脚本中都要用到它们. import ti ...

  5. android widget 开发实例 : 桌面便签程序的实现具体解释和源代码 (上)

    如有错漏请不吝拍砖指正,转载请注明出处,很感谢 桌面便签软件是android上经常使用软件的一种,比方比較早的Sticky Note,就曾很流行, Sticky Note的介绍能够參见 http:// ...

  6. Android一个小巧的记录app(便签或者日记 随心)

    入驻博客园两个月今天第一次发随笔,,话不多说,直接上图展示效果 主界面用的RecyclerView的瀑布流(StaggeredGridLayoutManager),同时加上Floatbutton悬浮按 ...

  7. android记帐本、涂鸦、仿腾讯新闻、仿bilibili、Markdwon便签、资讯APP等源码

    Android精选源码 kotlin版仿哔哩哔哩动画Android客户端源码 android实现图片涂鸦效果源码 Android 开源记账本项目源码 android高仿腾讯新闻app源码 androi ...

  8. 锤子便签的 monkeyrunner 测试脚本(转)

    https://testerhome.com/topics/878 MonkeyRunner可能大家已经听过无数次了,大家在网上也看过了各种关于的它的资料了,我这里就不再过多的啰嗦它的用途了,它可以对 ...

  9. 魅族便签,是否能成为国内便签应用的No.1?

    继前不久锤子科技推出便签 Android 新版后,近期魅族在PRO 6公布会上也公布了最新的魅族便签应用.这一次魅族把便签应用拓展到了整个Android体系,也就是说.其它不论什么的Android手机 ...

随机推荐

  1. TensorFlow学习笔记(四)图像识别与卷积神经网络

    一.卷积神经网络简介 卷积神经网络(Convolutional Neural Network,CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现. ...

  2. 存储器系列,L1缓存,L2缓存,内存(RAM),EEPROM和闪存,CMOS与BIOS电池

    因为各级存储硬件的参数和性能不同所以在计算机硬件当中分为以下几种: 由此可见顶级空间小但处理速度最快,下层容量大但处理速度时间较长. 存储器系统采用分层结构,顶层的存储器速度较高,容量较小,与底层的存 ...

  3. C# 使用windows服务发送邮件

    最近做了一个使用 C# 写了一个发送邮件的 windows 服务,在这里记录一下. 首先使用 Visual Studio 2015 创建一个 windows 服务项目. 然后在设计器上面右击添加安装程 ...

  4. maven安装配置参数化打包命令

    Maven使用 maven的配置文件看似很复杂,其实只需要根据项目的实际背景,设置个别的几个配置项而已.maven有自己的一套默认配置,使用者除非必要,并不需要去修改那些约定内容.这就是所谓的“约定优 ...

  5. iconnect

    https://iconnect.infosysapps.com/vpn/index.html

  6. 2 安装企业wiki:confluence

    jira sudo /etc/init.d/jira start 启动 jiarsudo /etc/init.d/jira stop 停止 jiar 方法一:$ sudo /etc/init.d/co ...

  7. live555笔记_hi3516A

    1.简介 是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP.RTSP.SI ...

  8. Python面试题之回调函数

    0x00 概述 编程分为两类:系统编程(system programming)和应用编程(application programming).所谓系统编程,简单来说,就是编写库:而应用编程就是利用写好的 ...

  9. [简明版] 有道云笔记Markdown指南

    使用有道词典配合Markdown,可以快速准确做出美观精致的笔记,下面我们来看一下如何使用有道词典的MarkDown功能. 什么是Markdown?Markdown是一种轻量级的「标记语言」,通常为程 ...

  10. js 图表处理之Echar

    官网学习链接:http://echarts.baidu.com/tutorial.html#5%20分钟上手%20ECharts 案例代码: <!DOCTYPE html> <htm ...