文档章节

SQLiteDatabase 使用(2)

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

四. 查询记录

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
博文 92
码字总数 40993
作品 0
海淀
SQLite 在 Android 中的详细使用

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

learn_more
2014/12/12
0
0
Android操作SQLite数据库

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

wangwenya
2013/07/19
0
0
android sqlite 介绍

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

小克898
2012/11/11
0
0
Android 操作SQLite基本用法

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

vga
2015/09/17
173
0
Android开发SQLite的使用

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

Erichkko
2015/08/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

驰狼课堂

http://www.chilangedu.com/

求是科技
29分钟前
0
0
jumpserver 报错"Incorrect string value

申明 本文所有内容参考自jumpserver记录命令无法入库问题 #1773 简介 jumpserver 1.4.0在jumpserver.log中大量报错,错误日志 File "/opt/jumpserver/apps/terminal/api.py", line 246, i...

zhnxin
35分钟前
2
0
用户管理相关配置文件及命令

9月19日任务 2.27linux和windows互传文件 3.1 用户配置文件和密码配置文件 3.2 用户组管理 3.3 用户管理 扩展知识 实用小工具 简单命令行下实现Linux/Windows文件互传 前提:使用远程工具Xsh...

robertt15
53分钟前
0
0
presto 架构

presto 介绍 是Facebook开源的,完全基于内存的并⾏计算,分布式SQL交互式查询引擎 是一种Massively parallel processing (MPP)架构,多个节点管道式执⾏ ⽀持任意数据源(通过扩展式Connect...

张欢19933
53分钟前
0
0
Ajax技术应用

1. 相关概述 1. ajax:即异步js与xml,可以实现客户端与服务端之间数据的异步交互。对于普通的B/S 模式是采用的同步方式,即一次请求必须等待一次服务器响应完成,而异步则是客户端发送请求后...

江左煤郎
54分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部