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. [Angular 2] Dispatching Action with Payloads and type to Reducers

    While action types allow you tell your reducer what action it should take, the payload is the data t ...

  2. Android app内语言环境切换

    逻辑很简单: 1  app内所有activity继承自BaseActivity或BaseActivity派生出来的子类,BaseActivity中维护了一个静态的 app Activity访问栈,在创 ...

  3. linux grep常用参数

    # grep [-acinv] [--color=auto] '搜寻字符串' filename选项与参数:-c :计算找到 '搜寻字符串' 的次数-i :忽略大小写的不同,所以大小写视为相同-n :顺 ...

  4. Win 8.1 无法安装 .net framework3.5

    今天因为给电脑换了固态硬盘,重装了系统,就装了个 win 8.1 后来在用 AS SSD Benchmark 测试硬盘性能的时候提示要安装 .net framework3.5 它自己尝试联网下载安装, ...

  5. MVC的Model层中的一些便签

    由于自己重新接触MVC,所以把Model层里的一些标签给记录下来,方便自己的使用. 这些是自己目前试用过的一些,在以后的工作中我会接着补充进去新的内容

  6. 阿里云linux的nginx下面配置多站点

    假设有服务器ip为 114.214.85.35 域名1为  www.jieshendada.cn 域名2为 www.jieshenxiaoxiao.cn 1.首先打开nginx域名配置文件存放目录:/ ...

  7. 去掉input【type=number】默认的上下箭头

    input::-webkit-inner-spin-button {-webkit-appearance: none;}input::-webkit-outer-spin-button {-webki ...

  8. python单元测试之unittest

    unittest是python标准库,从2.1开始就有. 标准的使用流程: 1:实现一个unittest.TestCase的子类 2:在其中定义以_test开头的实例函数 3:用unittest.ma ...

  9. Thinkphp 上传图片

    <?php // 本类由系统自动生成,仅供测试用途 class ListAction extends Action { public function index(){ //$name = 's ...

  10. JS判断图片是否加载完成三种方式

    1.img的complete属性 轮询不断监测img的complete属性,如果为true则表明图片已经加载完毕,停止轮询.该属性所有浏览器都支持. <p id="p1"&g ...