转载与:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2013/0714/1438.html    来自:泡在网上的日子。

和其他数据库一样,SQLite数据库的一般操作包括:创建数据库、打开数据库、创建表、向表中添加数据、从表中删除数据、修改表中的数据、关闭数据库、删除指定表、删除数据库和查询表中的某条数据。下面我们分别来学习这些基本操作。

1.创建和打开数据库
 在Android 中创建和打开一个数据库都可以使用openOrCreateDatabase 方法来实现,因为它会自动去检测是否存在这个数据库,如果存在则打开,不过不存在则创建一个数据库;创建成功则返回一个 SQLiteDatabase对象,否则抛出异常FileNotFoundException。下面我们来创建一个名为"Examples_06_05.db"的数据库,并返回一个SQLiteDatabase对象 mSQLiteDatabase。

1
mSQLiteDatabase = this.openOrCreateDatabase("Example_06_05.db", MODE_PRIVATE, null);

3.向表中添加一条数据
可以使用insert 方法来添加数据,但是 insert 方法要求把数据都打包到 ContentValues 中, ContentValues 其实就是一个Map, key值是字段名称, Value值是字段的值。通过 ContentValues 的 put 方法就可以把数据放到ContentValues中,然后插入到表中去。具体实现如下:

1
2
3
4
5
6
7
8
ContentValues  cv  =  new ContentValues();
cv.put(TABLE_NUM, 1);
cv.put(TABLE_DATA, "测试数据");
mSQLiteDatabase.insert(TABLE_NAME, null, cv);
                                                                                                                                                                                                                                                                            
  //这样同样可以使用execSQL方法来执行一条“插入”的SQL语句,代码如下:
String  INSERT_DATA = "INSERT INTO table1 (_id, num, data) values (1, 1, '通过SQL语句插入')" ;
mSQLiteDatabase.execSQL(INSERT_DATA);

4.从表中删除数据
要删除数据可以使用delete 方法,下面我们删除字段 "_id" 等于1的数据,具体代码如下:

1
2
3
4
mSQLiteDatabase.delete("Examples_06_05.db", " where_id="+0, null);
通过 execSQL方法执行SQL语句删除数据如下:
String  DELETE_DATA = "DELETE FROM table1 WHERE _id=1";
mSQLiteDatabase.execSQL(DELETE_DATA);

5.修改表中的数据
如果添加了数据后发现数据有误,这时需要修改这个数据,可以使用updata方法来更新一条数据。下面我们来修改 "num" 值为0的数据,具体代码如下:

1
2
3
4
ContentValues cv = new ContentValues();
cv.put(TABLE_NUM, 3);
cv.put(TABLE_DATA, "修改后的数据");
mSQLiteDatabase.update("table1" cv, "num " + "=" + Integer.toString(0), null);

6.关闭数据库
关闭数据库很重要,也是大家经常容易忘记的。关闭的方法很简单,直接使用SQLiteDatabase 的 close 方法。具体代码如下:

1
mSQLiteDatabase.close();

7.删除指定表
这里我们使用execSQL方法来实现,具体代码如下:

1
mSQLiteDatabase.execSQL("DROP TABLE table1");

8.删除数据库
要删除一个数据库,直接使用deleteDatabase 方法即可,具体代码如下:

1
this.deleteDatabase("Examples_06_05.db");

9.查询表中的某条数据
在Android中查询数据是通过Cursor类来实现的,当我们使用SQLiteDatabase.query()方法时,会得到一个Cursor对象,Cursor指向的就是每一条数据。它提供了很多有关查询的方法,具体方法如下:

方法 说明 
move 以当前的位置为参考,将Cursor移动到指定的位置,成功返回true, 失败返回false
moveToPosition 将Cursor移动到指定的位置,成功返回true,失败返回false
moveToNext  将Cursor向前移动一个位置,成功返回true,失败返回false
moveToLast 将Cursor向后移动一个位置,成功返回true,失败返回 false。
movetoFirst  将Cursor移动到第一行,成功返回true,失败返回false
isBeforeFirst 返回Cursor是否指向第一项数据之前
isAfterLast 返回Cursor是否指向最后一项数据之后
isClosed  返回Cursor是否关闭
isFirst 返回Cursor是否指向第一项数据
isLast  返回Cursor是否指向最后一项数据
isNull 返回指定位置的值是否为null
getCount 返回总的数据项数
getInt 返回当前行中指定的索引数据

下面我们就是用Cursor来查询数据库中的数据,具体代码如下:

转载与:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2013/0714/1438.html    来自:泡在网上的日子。
1
2
3
4
5
6
7
8
9
Cursor cur = mSQLiteDatabase.rawQuery("SELECT * FROM table", null);
if( cur != null ){
   if( cur.moveToFirst() ){
       do{
                  int numColumn = cur.getColumnIndex("num");
                  int num            = cur.getInt(numColumn);
            }while( cur.moveToNext());
      }
 }

Sqlite数据库初步的了解的更多相关文章

  1. SQLite数据库初步

    Windows 10家庭中文版 想使用Python操作SQLite数据库,可是,不知道怎么建立数据库文件. 在SQLite官网溜达了一圈,总算使用上面的工具安装了建立了我需要的数据库文件. 1.进入官 ...

  2. sqlite数据库下载安装和初步操作和所遇到的问题near "sqlite3":syntax error

    1.下载sqlite数据库:http://www.sqlite.org/download.html 假设是在window上安装须要在 Windows 区下载预编译的二进制文件.如图下载下载 sqlit ...

  3. Qt5 开发 iOS 应用之访问 SQLite 数据库

    开发环境: macOS 10.12.1 Xcode 8.1 Qt 5.8 iPhone 6S+iOS 10.1.1   源代码: 我在 Qt 程序里指定了数据库的名称来创建数据库,在 Win10.An ...

  4. Android之SQLite数据库篇

    一.SQLite简介 Google为Andriod的较大的数据处理提供了SQLite,他在数据存储.管理.维护等各方面都相当出色,功能也非常的强大. 二.SQLite的特点 1.轻量级使用 SQLit ...

  5. 【Win 10 应用开发】Sqlite 数据库的简单用法

    如果老周没记错的话,园子里曾经有朋友写过如何在 UWP 项目中使用 Sqlite数据库的文章.目前我们都是使用第三方封装的库,将来,SDK会加入对 Sqlite 的支持. 尽管目前 UWP-RT 库中 ...

  6. Android之SQLite数据库使用

    转载整理于:http://my.csdn.net/lmj623565791 我刚开始接触Android的时候甚至都不敢相信,Android系统竟然是内置了数据库的!好吧,是我太孤陋寡闻了.由于我之前是 ...

  7. 让PDF.NET支持最新的SQLite数据库

    最近项目中用到了SQLite,之前项目中用的是PDF.NET+MySQL的组合,已经写了不少代码,如果能把写好的代码直接用在SQLite上就好了,PDF.NET支持大部分主流的数据库,这个当然可以,只 ...

  8. iOS sqlite数据库图像化查看

    问题描述:在xocde上用sqlite数据库的时候,因为没有图形化界面,有些时候很难看出自己设计的数据库是否有问题,比如我刚上手sqlite数据库设计id为自增长时,很自然的用了identify(1, ...

  9. Android中SQLite数据库小计

    2016-03-16 Android数据库支持 本文节选并翻译<Enterprise Android - Programing Android Database Applications for ...

随机推荐

  1. 【css】css实现点击Toggle功能/icon切换

    ①实现Toggle功能 html结构: <div class="cssTog"><label> <p> 专业:B020309现代企业管理(独立本 ...

  2. vue实现分页

    效果图: html页面: data数据: 方法: 计算属性: 样式: html代码: <!--分页--> <div class="page-bar"> &l ...

  3. SEO优化上首页之搜索引擎原理简要

    搜索引擎(Search Engine)是特定的计算机程序,它根据一定的策略.从互联网上搜集信息,对信息进行处理后,为用户提供检索服务,并将用户结果展示给用户. 搜索引擎优化(Search Engine ...

  4. Verilog中使用'include实现参数化设计

    前段时间在FPGA上用Verilog写了一个多端口以太网的数据分发模块,因为每个网口需要独立的MAC地址和IP地址,为了便于后期修改,在设计中使用parameter来定义这些地址和数据总线的位宽等常量 ...

  5. 20155237 2016-2017-2 《Java程序设计》第4周学习总结

    20155237 2016-2017-2 <Java程序设计>第4周学习总结 教材学习内容总结 第六章 继承与多态 继承符合DRY原则. extends UML 多态: 继承可以复用代码, ...

  6. Linux下开发python django程序(模板设置和载入数据)

    1.添加templates文件夹 2.修改settings.py文件 import os #引用 os模块 BASE_DIR = os.path.dirname(os.path.dirname(os. ...

  7. 3931: [CQOI2015]网络吞吐量

    3931: [CQOI2015]网络吞吐量 链接 分析: 跑一遍dijkstra,加入可以存在于最短路中的点,拆点最大流. 代码: #include<cstdio> #include< ...

  8. springmvc ajax传递json值时出现400错误 (问题出在sql上)

    问题出在sql的int不能达到 10000000000 这个值,从 int(11) 修改成 varchar(20) 就可以正常存储了

  9. I NETWORK [thread1] waiting for connections on port 27017

    小技巧:mongodb安装完之后可以将安装目录的/bin添加到系统环境变量 一.问题 windows上安装完mongodb之后,设置完dbpath,一直卡在这里 二.解决办法 别关这个终端,再开个终端 ...

  10. android 图片二维码识别和保存(二)

    续上一篇,开发图片二维码识别功能后,我们对功能进行性能分析内存占用显著提高了,不使用该功能内存占用大约是147M,使用这个功能多次以后,高达203M. 因此对功能进行研究,发现每次生成的图片没有即时的 ...