在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. PAT 1144 The Missing Number[简单]

    1144 The Missing Number(20 分) Given N integers, you are supposed to find the smallest positive integ ...

  2. genymotion——VT-x is not available (VERR_VMX_NO_VMX) 的解决方案

    进入虚拟机设置页面

  3. Curl https 访问

    如果访问https的网页,出现: curl: (60) SSL certificate problem: unable to get local issuer certificate 将 将 CURL ...

  4. vue react angular对比

    1.数据绑定 1)vue 把一个普通对象传给Vued的data选项,Vue会遍历此对象的所有属性,并使用Object.defineProperty将这些属性全部转为getter/setter.Obje ...

  5. PKU 1932 XYZZY(Floyd+Bellman||Spfa+Floyd)

    题目大意:原题链接 给你一张图,初始你在房间1,初始生命值为100,进入每个房间会加上那个房间的生命(可能为负),问是否能到达房间n.(要求进入每个房间后生命值都大于0) 解题思路: 解法一:Floy ...

  6. openocd shell脚本

    openocd.sh #! /usr/bin/expectset timeout 30spawn suexpect "密码:"send "123456\r"se ...

  7. centos7 最小化安装后的配置优化

    echo #CENTOS7echo #1.最小化安装之后需要做的事echo 2.配置echo 2.1 安装网络yum install net-tools -y echo 2.2 更新机器名echo h ...

  8. C++之map使用

    解析文件或者字符串,一key跟keyvalue来存在map中,如下代码: test.h: #include <map>#include <vector> Class test ...

  9. Java伙伴系统(模拟)

    参考:https://labrick.cc/2015/10/12/buddy-system-algorithm/ 代码过烂 不宜参考. output: [operating.entity.Heap@4 ...

  10. java之继承中的构造方法

    继承中的构造方法  1.子类的构造过程中必须调用其基类的构造方法. 2.子类可以在自己的构造方法中使用super(argument_list)调用基类的构造方法. 2.1.使用this(argumen ...