1. 调用rawQuery()后,需要调用Cursor的movToFirst();
public Cursor query(String sql, String[] args){
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(sql, args);
cursor.moveToFirst(); // 重中之重,千万不能忘了
db.close();
return cursor;
}

2.删除记录时使用 sql ="delete from student where id = ?"


sql ="delete from student where id = ?";
server.delete(sql, new Object[]{113}); public void delete(String sql, Object[] args){
SQLiteDatabase db = this.getReadableDatabase();
db.execSQL(sql, args);
this.sql = sql;
db.close();
}

MainActivity.class

package com.example.db1;

import java.util.Random;

import android.R.string;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
import android.widget.Toast; public class DbServer extends SQLiteOpenHelper {
private final static int DatabaseVersion = 1;
private final static String DatabaseName = "abcd.db";
public static int cnt = 111;
public static String sql = null; public DbServer(Context context) {
super(context, DatabaseName, null, DatabaseVersion);
// TODO Auto-generated constructor stub
} @Override
public void onCreate(SQLiteDatabase db) {
MainActivity.cnt = 1;
this.cnt = 101;
// TODO Auto-generated method stub
String sql = "CREATE TABLE student (id INT PRIMARY KEY, NAME VARCHAR(10))";
db.execSQL(sql);
db.close();
} @Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub } public Cursor query(String sql, String[] args){
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(sql, args);
cursor.moveToFirst(); // 重中之重,千万不能忘了
db.close();
return cursor;
} public void insert(String sql, Object[] args){
SQLiteDatabase db = this.getReadableDatabase();
this.sql = sql;
db.execSQL(sql,args);
db.close();
} public void update(String sql, Object[] args){
SQLiteDatabase db = this.getReadableDatabase();
this.sql = sql;
db.execSQL(sql,args);
db.close();
} public void delete(String sql, Object[] args){
SQLiteDatabase db = this.getReadableDatabase();
db.execSQL(sql, args);
this.sql = sql;
db.close();
}
}

SQLiteOpenHelper的子类

package com.example.db1;

import java.util.Random;

import android.R.string;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
import android.widget.Toast; public class DbServer extends SQLiteOpenHelper {
private final static int DatabaseVersion = 1;
private final static String DatabaseName = "abcd.db";
public static int cnt = 111;
public static String sql = null; public DbServer(Context context) {
super(context, DatabaseName, null, DatabaseVersion);
// TODO Auto-generated constructor stub
} @Override
public void onCreate(SQLiteDatabase db) {
MainActivity.cnt = 1;
this.cnt = 101;
// TODO Auto-generated method stub
String sql = "CREATE TABLE student (id INT PRIMARY KEY, NAME VARCHAR(10))";
db.execSQL(sql);
db.close();
} @Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub } public Cursor query(String sql, String[] args){
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(sql, args);
cursor.moveToFirst(); // 重中之重,千万不能忘了
db.close();
return cursor;
} public void insert(String sql, Object[] args){
SQLiteDatabase db = this.getReadableDatabase();
this.sql = sql;
db.execSQL(sql,args);
db.close();
} public void update(String sql, Object[] args){
SQLiteDatabase db = this.getReadableDatabase();
this.sql = sql;
db.execSQL(sql,args);
db.close();
} public void delete(String sql, Object[] args){
SQLiteDatabase db = this.getReadableDatabase();
db.execSQL(sql, args);
this.sql = sql;
db.close();
}
}

android中操作SQLite注意事项的更多相关文章

  1. Android中操作SQLite数据库

    我又回到了安卓的学习当中,忙来忙去终于忙的差不多有时间做自己的事情了,这感觉实在是太棒了!!本来想写android的控件以及他们的监视器的,但是我查了查android的手册,基本上都能查到,但是查有些 ...

  2. Android中的SQLite使用学习

    Android中的SQLite使用学习 SQLite是非常流行的嵌入式关系型数据库,轻载, 速度快,而且是开源.在Android中,runtime提供SQLite,所以我们可以使用SQLite,而且是 ...

  3. Android中对sqlite加密--SQLCipher

    原文:Android中对sqlite加密--SQLCipher android中有些时候会将一些隐私数据存放在sqlite数据库中,在root过的手机中通过RE就能够轻松的打开并查看数据库所有内容,所 ...

  4. Android中使用sqlite笔记

    1.实现SQLiteHelper来在android中使用SQLite.代码如下,来自android官网. public class FeedReaderDbHelper extends SQLiteO ...

  5. 无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)

    1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name= ...

  6. Android之操作SQLite

    一.SQLite的介绍 1.SQLite简介 SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入  式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的 ...

  7. Android中数据库Sqlite的性能优化

    1.索引简单的说,索引就像书本的目录,目录可以快速找到所在页数,数据库中索引可以帮助快速找到数据,而不用全表扫描,合适的索引可以大大提高数据库查询的效率.(1). 优点大大加快了数据库检索的速度,包括 ...

  8. android中与SQLite数据库相关的类

    为什么要在应用程序中使用数据库?数据库最主要的用途就是作为数据的存储容器,另外,由于可以很方便的将应用程序中的数据结构(比如C语言中的结构体)转化成数据库的表,这样我们就可以通过操作数据库来替代写一堆 ...

  9. android中的SQLite数据库

    SQLite是android中集成的一个轻量级的数据库,该数据库支持绝大部分SQL92语法 SQLiteDatabase代表一个数据库(底层就是一个数据库文件),一旦应用程序获得了代表指定数据库的SQ ...

随机推荐

  1. 使用glob()查找文件(转)

    大部分PHP函数的函数名从字面上都可以理解其用途,但是当你看到 glob() 的时候,你也许并不知道这是用来做什么的,其实glob()和scandir() 一样,可以用来查找文件,请看下面的用法:  ...

  2. 我的Android进阶之旅------>Android 设置默认语言、默认时区

    1. 设置默认时区 PRODUCT_PROPERTY_OVERRIDES += \ persist.sys.timezone=Asia/Shanghai\ 注:搜索“persist.sys.timez ...

  3. Tomcat: IllegalStateException: No output folder --reference

    Today, I started to create a couple of JSP pages for the server-side part of my MSc thesis project i ...

  4. yii CGridView colum 链接

    默认显示的内容是没有链接的,现在想加链接,效果图如下 代码位置就在columns数组里,直接上代码说明 $this->widget('zii.widgets.grid.CGridView', a ...

  5. 数据库连接超时和go away、如何检测数据库的最大连接数

    搜索连接bi库超时 数据库连接超时 go away go away和连接超时之间的关系是什么? 写一个例子测试一下. 如何检测数据库的最大连接数

  6. 如何给report自定义page number

    问题描述: report在设置分页后会自动分页,但是有默认的page number,现在的问题是有时default page number不能满足我们的需求,此时就需要自定义page number. ...

  7. linux jdk,java ee ,tomcat 安装配置

    1.把mypagekage.iso 挂载到linux操作系统中. 在VM做好配置,使用 mount /mnt/cdrom 2.把安装文件拷贝到/home cp 文件名 /home (快捷键tab) 3 ...

  8. 设置Cacti图形标题能显示中文

    1.查看系统是否带有中文字体包 # ls /usr/share/fonts/chinese 如没有则安装 # yum -y install fonts-chinese   2.设置cacti使用的rr ...

  9. 接入淘宝SDK(OneSDK)和支付宝SDK(AlipaySDK)出现 duplicate symbols for architecture i386

    起初我在我的项目中先接入了AlipaySDK,没有出现什么问题,之后想要接入淘宝SDK之后,就出现了duplicate symbols for architecture i386的错误 经过一段时间排 ...

  10. PHP String

    PHP 5 String 函数 PHP String 函数是 PHP 核心的组成部分.无需安装即可使用这些函数. 函数 描述 addcslashes() 返回在指定的字符前添加反斜杠的字符串. add ...