导航:首页 > 操作系统 > android数据库update

android数据库update

发布时间:2022-08-26 20:26:25

‘壹’ android sqlite upgrade何时调用

当数据库版本号发生变化的时候的调用onUpdate。就是你以前的版本是1,然后升级成为2了,会调用这个,让你做一些操作,比方说将以前的表删除掉,新创建一个。或者给以前的表增加一个字段什么的。

‘贰’ android sqlitedatabase update 成功与否

Android 不自动提供数据库。

在 Android 应用程序中使用 SQLite,必须自己创建数据库,然后创建表、索引,填充数据。Android 提供了 SQLiteOpenHelper 帮助你创建一个数据库,你只要继承 SQLiteOpenHelper 类,就可以轻松的创建数据库。SQLiteOpenHelper 类根据开发应用程序的需要,封装了创建和更新数据库使用的逻辑。

SQLiteOpenHelper 的子类,至少需要实现三个方法:


构造函数,调用父类 SQLiteOpenHelper 的构造函数。这个方法需要四个参数:上下文环境(例如,一个 Activity),数据库名字,一个可选的游标工厂(通常是 Null),一个代表你正在使用的数据库模型版本的整数。
onCreate()方法,它需要一个 SQLiteDatabase 对象作为参数,根据需要对这个对象填充表和初始化数据。


onUpgrage() 方法,它需要三个参数,一个 SQLiteDatabase 对象,一个旧的版本号和一个新的版本号,这样你就可以清楚如何把一个数据库从旧的模型转变到新的模型。

下面示例代码展示了如何继承 SQLiteOpenHelper 创建数据库:

public class DatabaseHelper extends SQLiteOpenHelper {

DatabaseHelper(Context context, String name, CursorFactory cursorFactory, int version)
{
super(context, name, cursorFactory, version);
}

@Override

public void onCreate(SQLiteDatabase db) {

// TODO 创建数据库后,对数据库的操作

}

@Override

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

// TODO 更改数据库版本的操作

}
super.onOpen(db);
// TODO 每次成功打开数据库后首先被执行

}
}
复制代码
接下来讨论具体如何创建表、插入数据、删除表等等。调用 getReadableDatabase() 或 getWriteableDatabase() 方法,你可以得到 SQLiteDatabase 实例,具体调用那个方法,取决于你是否需要改变数据库的内容:

db=(new DatabaseHelper(getContext())).getWritableDatabase();

return (db == null) ? false : true;
复制代码
上面这段代码会返回一个 SQLiteDatabase 类的实例,使用这个对象,你就可以查询或者修改数据库。
当你完成了对数据库的操作(例如你的 Activity 已经关闭),需要调用 SQLiteDatabase 的 Close() 方法来释放掉数据库连接。

至少需要实现三个方法:
构造函数,调用父类 SQLiteOpenHelper 的构造函数。这个方法需要四个参数:上下文环境(例如,一个 Activity),数据库名字,一个可选的游标工厂(通常是 Null),一个代表你正在使用的数据库模型版本的整数。
onCreate()方法,它需要一个 SQLiteDatabase 对象作为参数,根据需要对这个对象填充表和初始化数据。
onUpgrage() 方法,它需要三个参数,一个 SQLiteDatabase 对象,一个旧的版本号和一个新的版本号,这样你就可以清楚如何把一个数据库从旧的模型转变到新的模型。

下面示例代码展示了如何继承 SQLiteOpenHelper 创建数据库:

public class DatabaseHelper extends SQLiteOpenHelper {

DatabaseHelper(Context context, String name, CursorFactory cursorFactory, int version)
{
super(context, name, cursorFactory, version);
}

@Override

public void onCreate(SQLiteDatabase db) {

// TODO 创建数据库后,对数据库的操作

}

@Override

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

// TODO 更改数据库版本的操作

}
super.onOpen(db);
// TODO 每次成功打开数据库后首先被执行

}
}
复制代码
接下来讨论具体如何创建表、插入数据、删除表等等。调用 getReadableDatabase() 或 getWriteableDatabase() 方法,你可以得到 SQLiteDatabase 实例,具体调用那个方法,取决于你是否需要改变数据库的内容:

db=(new DatabaseHelper(getContext())).getWritableDatabase();

return (db == null) ? false : true;
复制代码
上面这段代码会返回一个 SQLiteDatabase 类的实例,使用这个对象,你就可以查询或者修改数据库。
当你完成了对数据库的操作(例如你的 Activity 已经关闭),需要调用 SQLiteDatabase 的 Close() 方法来释放掉数据库连接。

‘叁’ 如何对android多媒体数据库进行增删改

Android四种存储方式: sharedpreference,file,SQlite,contentprovider。

1、SharedPreferences是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。其存储位置在/data/data/<包名>/shared_prefs目录下。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。实现SharedPreferences存储的步骤如下:

一、根据Context获取SharedPreferences对象

二、利用edit()方法获取Editor对象。

三、通过Editor对象存储key-value键值对数据。

四、通过commit()方法提交数据。

具体实现代码如下:实现存储,读取,清除,删除

效果图:

首先创建:// 首先拿到sharedpreference对象

mShared =getSharedPreferences(SHARED_MAIN_XML, MODE_PRIVATE);

存储:

private void write() {// 存入数据

savename = name.getText().toString().trim();

saveage = Integer.valueOf(age.getText().toString().trim());

Editor editor = mShared.edit();

editor.putString("name", savename);

editor.putInt("age", saveage);

// 保证操作的事务完整性

editor.commit();

}

阅读:

private String read() {// 从数据库里读取数据

namecontent = mShared.getString("name", "数据库里没有存储姓名");

agecontent = mShared.getInt("age", 0);

String reading = "姓名:" + namecontent + "\n年龄:" + agecontent;

return reading;

}

清除内容:

private void clear() {//清除内容

/** 开始清除SharedPreferences中保存的内容 **/

Editor editor = mShared.edit();

editor.remove("name");

editor.remove("age");

editor.commit();

}

删除文件:

private void delete() {//删除文件

/** 删除SharedPreferences文件 **/

Filefile = new File("/data/data/cn.csdn.activity" + "/shared_prefs/"

+ SHARED_MAIN_XML + ".xml");

if (file.exists()) {

file.delete();

Toast.makeText(this, "删除成功", Toast.LENGTH_LONG).show();

}

}

haredPreferences对象与SQLite数据库相比,免去了创建数据库,创建表,写SQL语句等诸多操作,相对而言更加方便,简洁。但是SharedPreferences也有其自身缺陷,比如其职能存储boolean,int,float,long和String五种简单的数据类型,比如其无法进行条件查询等。所以不论SharedPreferences的数据存储操作是如何简单,它也只能是存储方式的一种补充,而无法完全替代如SQLite数据库这样的其他数据存储方式。

2、File: 即常说的文件(I/O)存储方法,常用存储大数量的数据,但是缺点是更新数据将是一件困难的事情。

下面实现:在本地data文件下使用自己生成的文件处理数据的新建储存 读取 删除

如果说不想把内容存在SharedPreferences中的话,我们可以自己写一个文件保存须要的数据,在这里我将文件保存在系统中的工程路径下。

跟上面布局一样,删除文件也一样,清除内容也查不多,下面只是简单的写和读的方法:

写:

17String
nameage="名字:"+name.getText().toString().trim()+"年龄:"+age.getText().toString();

try {

os = this.openFileOutput(SHARED_MAIN_XML, MODE_PRIVATE);

/* 把字符串转换成字节数组,写入文件中 */

os.write(nameage.getBytes());

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}finally {

try {

/* 关闭文件输出流 */

os.close();

} catch (IOException e) {

e.printStackTrace();

}

}

读:

private String read() {

String nameage="";

// 打开文件输入流,

try {

is = this.openFileInput(SHARED_MAIN_XML);

/* 初始化字节数组 */

b = new byte[1024];

/* 从文件输入流中读取内容到字节数组中,返回内容长度 */

int length = is.read(b);

/* 把字节数组转换成字符串 */

nameage= new String(b);

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

return nameage;

}

很简单吧!!

3、SQLite是一种转为嵌入式设备设计的轻型数据库,其只有五种数据类型,分别是:

NULL: 空值

INTEGER: 整数

REAL: 浮点数

TEXT: 字符串

BLOB: 大数据

它是一个轻量级的数据库、非常小 、 移植性好、效率高、可靠

在Android系统中提供了android.database.sqlite包,用于进行SQLite数据库的增、删、改、查工作。

创建与删除数据库

封装一个类去继承SQLiteOpenHelper
在构造函数中传入数据库名称与数据库版本号,数据库被创建的时候会调用onCreate(SQLiteDatabase db)
方法,数据库版本号发生改变的时候会调用onUpgrade(SQLiteDatabase db, int oldVersion,
intnewVersion)方法,可以方便的对软件游戏升级后做出相应处理避免覆盖安装数据库发生改变产生的错误。调用SQLiteOpenHelper
的getReadableDatabase()方法去创建数据库,如果数据库不存在则创建并且返回SQLiteDatabase对象,如果数据库存在则不创建只返回SQLiteDatabase对象。调用
deleteDatabase(DATABASE_NAME)方法 传入数据库名称则可删除数据库。

第一种:详细请看上一遍博客:android之利用SQLite数据库实现登陆和注册,http://blog.csdn.net/rhljiayou/article/details/7085347

下面介绍第二种:另一种添删改查操作

效果图:

布局文件很简单,在此不再给出!!

直接给创建数据库和表,增删改查的代码:

public class UserService {

private DatabaseHelper helper;

public UserService(Context context, String name, int version) {

helper = new DatabaseHelper(context, name, version);

}

public UserService(Context context, String name) {

helper = new DatabaseHelper(context, name);

}

public void insert(UserDao user) {// 插入数据

SQLiteDatabase sdb = helper.getWritableDatabase();

ContentValues values = new ContentValues();

values.put("username", user.getUsername());

values.put("password", user.getPassword());

sdb.insert("user", "name", values);

sdb.close();

}

public void delete(int id) {// 删除数据

SQLiteDatabase sdb = helper.getWritableDatabase();

sdb.delete("user", "id=?", new String[]{String.valueOf(id)});

sdb.close();

}

public void update(UserDao user, int id) {// 更新数据

SQLiteDatabase sdb = helper.getWritableDatabase();

ContentValues values=new ContentValues();

values.put("username", user.getUsername());

values.put("password", user.getPassword());

sdb.update("user", values, "id=?", new String[]{String.valueOf(id)});

sdb.close();

}

public Cursor select() {// 查询所有数据

SQLiteDatabase sdb = helper.getWritableDatabase();

return sdb.query("user", new String[]{"id as _id","username","password"},
null, null, null, null, null);

}

public UserDao find(int id){//按id查询数据

UserDao user=null;

SQLiteDatabase sdb=helper.getWritableDatabase();

Cursor cursor=sdb.query("user", new String[]{"id","username","password"},
"id=?", new String[]{String.valueOf(id)}, null, null, null);

if(cursor.moveToFirst()){

user=new UserDao();

user.setId(cursor.getInt(0));

user.setUsername(cursor.getString(1));

user.setPassword(cursor.getString(2));

}

cursor.close();

sdb.close();

return user;

}

}

插入数据:通过insert(String table, StringnullColumnHack, ContentValues
values)方法插入数据,其中参数含义分别为:

table: 目标表名

nullColumnHack:
指定表中的某列列名。因为在SQLite中,不允许不允许插入所有列均为null的记录,因此初始值有值为空时,此列需显式赋予null

values:ContentValues对象,类似于java中的Map。以键值对的方式保存数据。

‘肆’ android sqlite 已经插入到数据库的数据查不到

楼主取数据的循环方式有点问题,试试下面的
for(cursor.moveToFirst();!cursor.isAfterLast();cursor.moveToNext())
{
HashMap map=new HashMap();
map.put("num1", cursor.getString(1));
map.put("num2", cursor.getString(2));
map.put("num3", cursor.getString(3));
map.put("salesub", cursor.getString(4));
map.put("addr", cursor.getString(6));
map.put("phonenum", cursor.getString(7));
list.add(map);
}

‘伍’ android开发 修改了数据库后怎么更新

给你提供几种方法吧:

  1. 在查看学生信息的那个Activity里面,重写onResume方法,在这个方法里面获取数据来显示视图,无论是这个activity新创建,还是从后台不可见转为前台,都会走这个生命周期。

  2. 数据显示页面监听数据的变化来更新输入。如果管理数据使用的是 ContentProvider管理的话,直接使用ContentObserver来监听相应的Uri即可,如果不是这种方式的话,可以在操作学生数据库的时候发送一个广播,然后现实学生页面的Activity去监听这个广播,收到广播后去更新界面。

  3. 如果是从查看信息界面进入的修改信息界面,那么可以使用startActivityForResult方法启动信息修改界面,信息修改后调用setResult方法返回修改后的数据给信息显示界面,信息显示界面重写onActivityResult方法来获取新的学生信息,从而更新界面

    暂时就想到这几种方法吧,希望对你有帮助~

‘陆’ android SQLiteDatabase中的update函数用法

创建数据库
Android
不自动提供数据库。在
Android
应用程序中使用
SQLite,必须自己创建数据库,然后创建表、索引,填充数据。Android
提供了
SQLiteOpenHelper
帮助你创建一个数据库,你只要继承
SQLiteOpenHelper
类,就可以轻松的创建数据库。SQLiteOpenHelper
类根据开发应用程序的需要,封装了创建和更新数据库使用的逻辑。SQLiteOpenHelper
的子类,至少需要实现三个方法:
构造函数,调用父类
SQLiteOpenHelper
的构造函数。这个方法需要四个参数:上下文环境(例如,一个
Activity),数据库名字,一个可选的游标工厂(通常是
Null),一个代表你正在使用的数据库模型版本的整数。
onCreate()方法,它需要一个
SQLiteDatabase
对象作为参数,根据需要对这个对象填充表和初始化数据。
onUpgrage()
方法,它需要三个参数,一个
SQLiteDatabase
对象,一个旧的版本号和一个新的版本号,这样你就可以清楚如何把一个数据库从旧的模型转变到新的模型。
下面示例代码展示了如何继承
SQLiteOpenHelper
创建数据库:
public
class
DatabaseHelper
extends
SQLiteOpenHelper
{
DatabaseHelper(Context
context,
String
name,
CursorFactory
cursorFactory,
int
version)
{

super(context,
name,
cursorFactory,
version);
}
@Override
public
void
onCreate(SQLiteDatabase
db)
{
//
TODO
创建数据库后,对数据库的操作
}
@Override
public
void
onUpgrade(SQLiteDatabase
db,
int
oldVersion,
int
newVersion)
{
//
TODO
更改数据库版本的操作
}
super.onOpen(db);
//
TODO
每次成功打开数据库后首先被执行
}
}
复制代码
接下来讨论具体如何创建表、插入数据、删除表等等。调用
getReadableDatabase()

getWriteableDatabase()
方法,你可以得到
SQLiteDatabase
实例,具体调用那个方法,取决于你是否需要改变数据库的内容:
db=(new
DatabaseHelper(getContext())).getWritableDatabase();
return
(db
==
null)
?
false
:
true;
复制代码
上面这段代码会返回一个
SQLiteDatabase
类的实例,使用这个对象,你就可以查询或者修改数据库。
当你完成了对数据库的操作(例如你的
Activity
已经关闭),需要调用
SQLiteDatabase

Close()
方法来释放掉数据库连接。

‘柒’ Android 数据库如何更新

1、设置一个DB_VERSION

publicstaticfinalintDB_VERSION=1;

2、当你要更新表的时候就把DB_VERSION+1,就会触发onUpgrade,数据库就更新了,记得采纳

publicDBHelper(){
//fortest
Config=newDbManager.DaoConfig()
.setDbName(DB_NAME)
.setDbVersion(DB_VERSION)
.setDbDir(Environment.getExternalStorageDirectory())
.setDbOpenListener(newDbManager.DbOpenListener(){
@Override
publicvoidonDbOpened(DbManagerdb){
db.getDatabase().enableWriteAheadLogging();
}
})
.setDbUpgradeListener(newDbManager.DbUpgradeListener(){
@Override
publicvoidonUpgrade(DbManagerdb,intoldVersion,intnewVersion){
updateTable(db,xx.class);

}
});
}

‘捌’ android sqlite数据库的更新

一、使用嵌入式关系型SQLite数据库存储数据
在Android平台上,集成了一个嵌入式关系型数据库——SQLite,SQLite3支持NULL、INTEGER、REAL(浮点数字)、 TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型只有五种,但实际上sqlite3也接受varchar(n)、 char(n)、decimal(p,s) 等数据类型,只不过在运算或保存时会转成对应的五种数据类型。 SQLite最大的特点是你可以把各种类型的数据保存到任何字段中,而不用关心字段声明的数据类型是什么。例如:可以在Integer类型的字段中存放字符串,或者在布尔型字段中存放浮点数,或者在字符型字段中存放日期型值。 但有一种情况例外:定义为INTEGER PRIMARY KEY的字段只能存储64位整数, 当向这种字段保存除整数以外的数据时,将会产生错误。 另外,在编写CREATE TABLE 语句时,你可以省略跟在字段名称后面的数据类型信息,如下面语句你可以省略name字段的类型信息:
CREATE TABLE person (personid integer primary key autoincrement, name varchar(20))
SQLite可以解析大部分标准SQL语句,如:
复制代码 代码如下:

查询语句:select * from 表名 where 条件子句 group by 分组字句 having ... order by 排序子句
如: select * from person
select * from person order by id desc
select name from person group by name having count(*)>1
分页SQL与mysql类似,下面SQL语句获取5条记录,跳过前面3条记录
select * from Account limit 5 offset 3 或者 select * from Account limit 3,5
插入语句:insert into 表名(字段列表) values(值列表)。如: insert into person(name, age) values(‘传智',3)
更新语句:update 表名 set 字段名=值 where 条件子句。如:update person set name=‘传智‘ where id=10
删除语句:delete from 表名 where 条件子句。如:delete from person where id=10

二、使用SQLiteOpenHelper对数据库进行版本管理
我们在编写数据库应用软件时,需要考虑这样的问题:因为我们开发的软件可能会安装在很多用户的手机上,如果应用使用到了SQLite数据库,我们必须在用户初次使用软件时创建出应用使用到的数据库表结构及添加一些初始化记录,另外在软件升级的时候,也需要对数据表结构进行更新。那么,我们如何才能实现在用户初次使用或升级软件时自动在用户的手机上创建出应用需要的数据库表呢?总不能让我们在每个需要安装此软件的手机上通过手工方式创建数据库表吧?因为这种需求是每个数据库应用都要面临的,所以在Android系统,为我们提供了一个名为SQLiteOpenHelper的抽象类,必须继承它才能使用,它是通过对数据库版本进行管理来实现前面提出的需求。

为了实现对数据库版本进行管理,SQLiteOpenHelper类提供了两个重要的方法,分别是onCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion),前者用于初次使用软件时生成数据库表,后者用于升级软件时更新数据库表结构。当调用SQLiteOpenHelper的getWritableDatabase()或者getReadableDatabase()方法获取用于操作数据库的SQLiteDatabase实例的时候,如果数据库不存在,Android系统会自动生成一个数据库,接着调用onCreate()方法,onCreate()方法在初次生成数据库时才会被调用,在onCreate()方法里可以生成数据库表结构及添加一些应用使用到的初始化数据。onUpgrade()方法在数据库的版本发生变化时会被调用,一般在软件升级时才需改变版本号,而数据库的版本是由程序员控制的,假设数据库现在的版本是1,由于业务的变更,修改了数据库表结构,这时候就需要升级软件,升级软件时希望更新用户手机里的数据库表结构,为了实现这一目的,可以把原来的数据库版本设置为2(有同学问设置为3行不行?当然可以,如果你愿意,设置为100也行),并且在 onUpgrade()方法里面实现表结构的更新。当软件的版本升级次数比较多,这时在onUpgrade()方法里面可以根据原版号和目标版本号进行判断,然后作出相应的表结构及数据更新。

getWritableDatabase()和 getReadableDatabase()方法都可以获取一个用于操作数据库的SQLiteDatabase实例。但 getWritableDatabase() 方法以读写方式打开数据库,一旦数据库的磁盘空间满了,数据库就只能读而不能写,倘若使用getWritableDatabase()打开数据库就会出错。getReadableDatabase()方法先以读写方式打开数据库,如果数据库的磁盘空间满了,就会打开失败,当打开失败后会继续尝试以只读方式打开数据库。
注意:getWritableDatabase(),getReadableDatabase的区别是当数据库写满时,调用前者会报错,调用后者不会,所以如果不是更新数据库的话,最好调用后者来获得数据库连接。
代码:
复制代码 代码如下:

public class DatabaseHelper extends SQLiteOpenHelper {
//类没有实例化,是不能用作父类构造器的参数,必须声明为静态
private static final String name = "ljqdb"; //数据库名称
private static final int version = 1; //数据库版本
public DatabaseHelper(Context context) {
//第三个参数CursorFactory指定在执行查询时获得一个游标实例的工厂类,设置为null,代表使用系统默认的工厂类
super(context, name, null, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE IF NOT EXISTS person (
personid integer primary key autoincrement, name varchar(20), age INTEGER)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL(" ALTER TABLE person ADD phone VARCHAR(12) NULL "); //往表中增加一列
// DROP TABLE IF EXISTS person 删除表
}
}

在实际项目开发中,当数据库表结构发生更新时,应该避免用户存放于数据库中的数据丢失。
三、使用SQLiteDatabase操作SQLite数据库
Android提供了一个名为SQLiteDatabase的类,该类封装了一些操作数据库的API,使用该类可以完成对数据进行添加(Create)、查询(Retrieve)、更新(Update)和删除(Delete)操作(这些操作简称为CRUD)。对SQLiteDatabase的学习,我们应该重点掌握execSQL()和rawQuery()方法。execSQL()方法可以执行insert、delete、update和CREATE TABLE之类有更改行为的SQL语句; rawQuery()方法用于执行select语句。
execSQL()方法的使用例子:
复制代码 代码如下:

SQLiteDatabase db = ....;
db.execSQL("insert into person(name, age) values('林计钦', 24)");
db.close();

执行上面SQL语句会往person表中添加进一条记录,在实际应用中, 语句中的“林计钦”这些参数值会由用户输入界面提供,如果把用户输入的内容原样组拼到上面的insert语句, 当用户输入的内容含有单引号时,组拼出来的SQL语句就会存在语法错误。要解决这个问题需要对单引号进行转义,也就是把单引号转换成两个单引号。有些时候用户往往还会输入像“ & ”这些特殊SQL符号,为保证组拼好的SQL语句语法正确,必须对SQL语句中的这些特殊SQL符号都进行转义,显然,对每条SQL语句都做这样的处理工作是比较烦琐的。 SQLiteDatabase类提供了一个重载后的execSQL(String sql, Object[] bindArgs)方法,使用这个方法可以解决前面提到的问题,因为这个方法支持使用占位符参数(?)。使用例子如下:
复制代码 代码如下:

SQLiteDatabase db = ....;
db.execSQL("insert into person(name, age) values(?,?)", new Object[]{"传智播客", 4});
db.close();

execSQL(String sql, Object[] bindArgs)方法的第一个参数为SQL语句,第二个参数为SQL语句中占位符参数的值,参数值在数组中的顺序要和占位符的位置对应。
SQLiteDatabase的rawQuery()用于执行select语句,使用例子如下:
复制代码 代码如下:

SQLiteDatabase db = ....;
Cursor cursor = db.rawQuery("select * from person", null);
while (cursor.moveToNext()) {
int personid = cursor.getInt(0); //获取第一列的值,第一列的索引从0开始
String name = cursor.getString(1);//获取第二列的值
int age = cursor.getInt(2);//获取第三列的值
}
cursor.close();
db.close();

rawQuery()方法的第一个参数为select语句;第二个参数为select语句中占位符参数的值,如果select语句没有使用占位符,该参数可以设置为null。带占位符参数的select语句使用例子如下:
复制代码 代码如下:

Cursor cursor = db.rawQuery("select * from person where name like ? and age=?", new String[]{"%林计钦%", "4"});

Cursor是结果集游标,用于对结果集进行随机访问,如果大家熟悉jdbc, 其实Cursor与JDBC中的ResultSet作用很相似。使用moveToNext()方法可以将游标从当前行移动到下一行,如果已经移过了结果集的最后一行,返回结果为false,否则为true。另外Cursor 还有常用的moveToPrevious()方法(用于将游标从当前行移动到上一行,如果已经移过了结果集的第一行,返回值为false,否则为true )、moveToFirst()方法(用于将游标移动到结果集的第一行,如果结果集为空,返回值为false,否则为true )和moveToLast()方法(用于将游标移动到结果集的最后一行,如果结果集为空,返回值为false,否则为true ) 。

除了前面给大家介绍的execSQL()和rawQuery()方法, SQLiteDatabase还专门提供了对应于添加、删除、更新、查询的操作方法: insert()、delete()、update()和query() 。这些方法实际上是给那些不太了解SQL语法的菜鸟使用的,对于熟悉SQL语法的程序员而言,直接使用execSQL()和rawQuery()方法执行SQL语句就能完成数据的添加、删除、更新、查询操作。

‘玖’ Android数据库SQLiteDatabase的update方法,whereClause参数怎么添加多个条件

1. ACID事务

2. 零配置 – 无需安装和管理配置

3.储存在单一磁盘文件中的一个完整的数据库

4.数据库文件可以在不同字节顺序的机器间自由的共享

5.支持数据库大小至2TB

6. 足够小, 大致13万行C代码, 4.43M

7. 比一些流行的数据库在大部分普通数据库操作要快

8. 简单, 轻松的API

9. 包含TCL绑定, 同时通过Wrapper支持其他语言的绑定

10. 良好注释的源代码, 并且有着90%以上的测试覆盖率

11. 独立: 没有额外依赖

12. 源码完全的开源, 你可以用于任何用途, 包括出售它

13. 支持多种开发语言,C, C++, PHP, Perl, Java, C#,Python, Ruby等

SQLite虽然很小巧,但是支持的SQL语句不会逊色于其他开源数据库,它支持的SQL包括:

ATTACH DATABASE

BEGIN TRANSACTION

comment

COMMIT TRANSACTION

COPY

CREATE INDEX

CREATE TABLE

CREATE TRIGGER

CREATE VIEW

DELETE

DETACH DATABASE

DROP INDEX

DROP TABLE

DROP TRIGGER

DROP VIEW

END TRANSACTION

EXPLAIN

expression

INSERT

ON CONFLICT clause

PRAGMA

REPLACE

ROLLBACK TRANSACTION

SELECT

UPDATE

同时它还支持事务处理功能等等。也有人说它象Microsoft的Access,有时候真的觉得有点象,但是事实上它们区别很大。比如SQLite 支持跨平台,操作简单,能够使用很多语言直接创建数据库,而不象Access一样需要Office的支持。如果你是个很小型的应用,或者你想做嵌入式开发,没有合适的数据库系统,那么你可以考虑使用SQLite。到2013年10月17日最新版本是 3.8.1 。能在上面获得源代码和文档。同时因为数据库结构简单,系统源代码也不是很多,也适合想研究数据库系统开发的专业人士.

阅读全文

与android数据库update相关的资料

热点内容
lzma源码使用 浏览:748
ibm服务器湖南经销商云服务器 浏览:991
正规模板建站配云服务器商家 浏览:871
安卓清楚缓存命令 浏览:378
汽车压缩机电磁离合器损坏怎么修 浏览:507
怎么提取安卓软件 浏览:595
单片机和主机高速传文件 浏览:478
男生直发加密需要剃光头吗 浏览:825
qtdesignerlinux 浏览:431
命令的几要素 浏览:932
代理服务器地址怎么知道 浏览:172
汉语命令形 浏览:193
ACG官网下载的游戏怎么解压 浏览:963
stata交叉项命令 浏览:470
程序员老公烫头 浏览:692
服务器文件地址格式 浏览:131
securecrtandroid 浏览:176
短字符串压缩 浏览:863
u盘插入后显示加密格式化 浏览:944
我的世界怎么用命令方块获得超级武器 浏览:382