文档章节

SQLiteDatabase 使用(2)

c
 chuiyuan
发布于 2014/04/23 23:00
字数 636
阅读 25
收藏 1
点赞 0
评论 0

四. 查询记录

1.使用query()查询

格式 如下

SQLiteDatabase.query (String table ,String [] columns ,String selection ,String []selectionArgs ,

    String groupBy , String having ,String orderBy );

其中orderBy:ASC为升序 ,DESC为降序。

2. 使用Cursor对象 

    查询的结果 以一个Cursor对象返回,它好比是一个文件指针,可以很方便 的进行遍历。我们可以将它认为 是一张 表,每个记录是一行,每个属性是一列。

    只能暂时保存对象 。执行完了要关闭。

常用 的方法:

Cursor.getCount( ) ;

Cursor.getColumnCount ( );

Cursor.moveToFirst( ) ,对应的有Next ,Last,   isAfterLast()是否指向最后。

Cursor.close( ) ,

Cursor.requery( ),刷新。

Cursor的管理比较复杂 ,但是我们可以 用

Activity.startmanagingCursor( Cursor c)

如果 我们要遍历一个Cursor,可以用下面的方法。

要插入


3.  执行查询操作

不定

4.  使用SQLiteDatabaseBuilder 

前面的都是单表查询,如果 多表,则要用SQLiteBuilder。如

如有两个表,

brief 中是name and password

detail 中是name ,coutry ,hobby and others 

下面我们执行多表查询。

SELTECT      user_brief.name ,

                    user_brief.password,

                    user_detail.age .

                    user_detail.sex 

    FROM  user_detail, user_brief

    WHERE  user_brief.name =user_detail.name  AND user_brief.name= "lisj" 

    ORDERBY age ASC

使用SQLiteDataBuilder步骤 

1. 获得对象 

SQLiteDataBuilder builder = new SQLiteDataBuilder ();

2.设置要查询的表,用 , 隔开 

 builder.setTables( TABLENAME_1 +" ,"+TABLENAME_2);

3.设定关联属性,等号连接

builder.appendWhere (TABLENAME_1+"."+NAME+"="+TABLENAME_2+"."+NAME);

4.开始查询

cursor = builder.query(SQLiteDatabase db ,String [ ] projectIn ,String selection ,String [] selectionArgs ,

String groupBy ,String having ,String sortOrder);

String [] projectionIn :要查询数据 的属性。

例子省


5. 使用数据库帮助 类

使用steps 

(1) extends SQLiteOpenHelper

重写三个方法:onCreate () ,onOpen( ) ,onUpgrate( )

数据库在建立时,会调用 onCreate()类,在里面会完成 表的创建 。

与Activity不同的是,只有在数据库第一次被创建 时才会用onCreate()方法,onOpen()则是在每次都会用的。

例子:

public class DatabaseHelper extends SQLiteOpenHelper{

final static String DATABASENAME="my_database.db";

final static int VERSION = 1;

final static String TABLENAME="userInfo_detail";

final static String ID= "id";

final static String NAME="name";

final static String SEX="sex";

final static String AGE= "age";

final static String HOBBY ="hobby";

final static String PASSWORD="password";



public DatabaseHelper(Context context, String name, CursorFactory factory,

int version) {

super(context, name, factory, version);

// TODO Auto-generated constructor stub

}


@Override

public void onCreate(SQLiteDatabase db) {

// TODO Auto-generated method stub

String sql = "CREATE TABLE "+

TABLENAME+"("+

ID+" INTEGER PRIMARY KEY AUTOINCREMENT, "+

NAME+" TEXT, "+

PASSWORD+" TEXT, "+

PASSWORD+" TEXT, "+

SEX+" TEXT, "+

AGE+" TEXT, "+

HOBBY+" TEXT); ";


db.execSQL(sql);

}


@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

// TODO Auto-generated method stub


}



}



2。得到帮助类的对象

用Helper的构造函数,刚上面 的例子。

DatabaseHelper helper =DatabaseHelper(Context context, String name, CursorFactory factory,int version) 

里面的name是数据库和的名字。

3. 得到数据 库

在有了Helper后,我们可以很容易 就得到一个可以读or写的数据 库。

SQLiteOpenHelper.getWriteableDatabase();

SQLiteOepnHelper.getReadableDatabase ( );











© 著作权归作者所有

共有 人打赏支持
c
粉丝 9
博文 91
码字总数 40993
作品 0
海淀
SQLite 在 Android 中的详细使用

声明:本文转载自:http://www.cnblogs.com/weixing/archive/2013/08/02/3232994.html 感谢 “无恨星辰”的知识积累,这对于热爱学习的人来说是一个巨大的帮助..... 1、SQLite简介 SQLite是一...

learn_more ⋅ 2014/12/12 ⋅ 0

SQLite的基本使用二

这个星期一直在与狗屁DELL交涉都没怎么写博客了,尼玛的狗屁DELL发我一个没有硬盘的机器还不肯退换货,真是气死人了,不说了,说多了都是血。 直接使用SQLiteDatabase的openOrCreateDatabas...

summerpxy ⋅ 2013/11/15 ⋅ 0

android sqlite 介绍

Android 中SQlite操作 一 Sqlite的特点: 1 轻量级的 进程内的数据库引擎,不存在数据库的客户端和服务器,非常小 2 不需要安装 Sqlite的核心引擎不需要依赖第三方软件,不需要安装 3 跨平台...

小克898 ⋅ 2012/11/11 ⋅ 0

Android操作SQLite数据库

SQLite特点 1.Android平台中嵌入了一个关系型数据库SQLite,和其他数据库不同的是SQLite存储数据时不区分类型 例如一个字段声明为Integer类型,我们也可以将一个字符串存入,一个字段声明为布...

wangwenya ⋅ 2013/07/19 ⋅ 0

Android开发SQLite的使用

在Android开发中SQLite起着很重要的作用,网上SQLite的教程有很多很多,不过那些教程大多数都讲得不是很全面。本人总结了一些SQLite的常用的方法,借着论坛的大赛,跟大家分享分享的。 一.SQ...

Erichkko ⋅ 2015/08/28 ⋅ 0

sqlite插入速度优化方案

先贴上SQLiteOpenHelper的代码,我们创建测试的表是user,它有四个字段id,name,age,height,remark,测试用的小米2,默认条数为100行。 //MySQliteOpenHelper作为一个访问SQLite的帮助类,提供...

雨焰 ⋅ 2013/04/12 ⋅ 0

android SQLite使用SQLiteOpenHelper类对数据库进行操作

一、 SQLite介绍 SQLite是android内置的一个很小的关系型数据库。 SQLite的官网是http://www.sqlite.org/,可以去下载一些文档或相关信息。 博客中有一篇有稍微详细一点的介绍,大家可以去看...

hosealee ⋅ 2013/06/08 ⋅ 0

android数据库

关系型数据库SQLite3,它是一个支持SQL轻量级的嵌入式数据库,在嵌入式操作上有很广泛的,WM采用的也是SQLite3 首先,我们看一下api,所有数据库相关的接口、类都在.database和android.datab...

骑牛找牛 ⋅ 2014/02/02 ⋅ 0

Android 操作SQLite基本用法

在Android开发中SQLite起着很重要的作用,网上SQLite的教程有很多很多,不过那些教程大多数都讲得不是很全面。本人总结了一些SQLite的常用的方法,借着论坛的大赛,跟大家分享分享的。 一.SQ...

vga ⋅ 2015/09/17 ⋅ 0

Android的SQLite数据库的增删改查操作

一、使用嵌入式关系型SQLite数据库存储数据 在Android平台上,集成了一个嵌入式关系型数据库——SQLite,SQLite3支持NULL、INTEGER、REAL(浮点数字)、TEXT(字符串文本)和BLOB(二进制对象)...

的书法上的 ⋅ 2014/06/06 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

C++内存映射文件居然是这样?!

内存映射文件大家都时不时听过,但它到底是个什么?赶紧来看看吧 内存映射文件到底是干嘛的呢?让我们先来思考下面几个问题: 如果您想读的内容大于系统分配的内存块怎么办?如果您想搜索的字...

柳猫 ⋅ 22分钟前 ⋅ 0

MySQL 数据库设计总结

规则1:一般情况可以选择MyISAM存储引擎,如果需要事务支持必须使用InnoDB存储引擎。 注意:MyISAM存储引擎 B-tree索引有一个很大的限制:参与一个索引的所有字段的长度之和不能超过1000字节...

OSC_cnhwTY ⋅ 今天 ⋅ 0

多线程(四)

线程池和Exector框架 什么是线程池? 降低资源的消耗 提高响应速度,任务:T1创建线程时间,T2任务执行时间,T3线程销毁时间,线程池没有或者减少T1和T3 提高线程的可管理性。 线程池要做些什...

这很耳东先生 ⋅ 今天 ⋅ 0

使用SpringMVC的@Validated注解验证

1、SpringMVC验证@Validated的使用 第一步:编写国际化消息资源文件 编写国际化消息资源ValidatedMessage.properties文件主要是用来显示错误的消息定制 [java] view plain copy edit.userna...

瑟青豆 ⋅ 今天 ⋅ 0

19.压缩工具gzip bzip2 xz

6月22日任务 6.1 压缩打包介绍 6.2 gzip压缩工具 6.3 bzip2压缩工具 6.4 xz压缩工具 6.1 压缩打包介绍: linux中常见的一些压缩文件 .zip .gz .bz2 .xz .tar .gz .tar .bz2 .tar.xz 建立一些文...

王鑫linux ⋅ 今天 ⋅ 0

6. Shell 函数 和 定向输出

Shell 常用函数 简洁:目前没怎么在Shell 脚本中使用过函数,哈哈,不过,以后可能会用。就像java8的函数式编程,以后获取会用吧,行吧,那咱们简单的看一下具体的使用 Shell函数格式 linux ...

AHUSKY ⋅ 今天 ⋅ 0

单片机软件定时器

之前写了一个软件定时器,发现不够优化,和友好,现在重写了 soft_timer.h #ifndef _SOFT_TIMER_H_#define _SOFT_TIMER_H_#include "sys.h"typedef void (*timer_callback_function)(vo...

猎人嘻嘻哈哈的 ⋅ 今天 ⋅ 0

好的资料搜说引擎

鸠摩搜书 简介:鸠摩搜书是一个电子书搜索引擎。它汇集了多个网盘和电子书平台的资源,真所谓大而全。而且它还支持筛选txt,pdf,mobi,epub、azw3格式文件。还显示来自不同网站的资源。对了,...

乔三爷 ⋅ 今天 ⋅ 0

Debian下安装PostgreSQL的表分区插件pg_pathman

先安装基础的编译环境 apt-get install build-essential libssl1.0-dev libkrb5-dev 将pg的bin目录加入环境变量,主要是要使用 pg_config export PATH=$PATH:/usr/lib/postgresql/10/bin 进......

玛雅牛 ⋅ 今天 ⋅ 0

inno安装

#define MyAppName "HoldChipEngin" #define MyAppVersion "1.0" #define MyAppPublisher "Hold Chip, Inc." #define MyAppURL "http://www.holdchip.com/" #define MyAppExeName "HoldChipE......

backtrackx ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部