SQLite数据库的基本使用

内置在android底层的小型数据库的使用基本上跟SQL sever使用都是一致的;

创建一个SQLite数据的基本流程如下,需要实现SQLopenHelper这个数据库管理助手接口。如下:新建一个mySQLiteopebHelper类

 1 public class MySQLiteHelper extends SQLiteOpenHelper {
 2     // 构造一个SQLiteOpenHelper
 3     public MySQLiteHelper(Context context, String name, SQLiteDatabase.CursorFactory factory,int version){
 4         super(context,name,factory,version);
 5     }
 6
 7     @Override
 8     public void onCreate(SQLiteDatabase db) {
 9         // 创建一个数据库以及表格(ID,NAME,AGE),其中主键为ID,自增形式
10         db.execSQL("create table mytable(id integer primary key autoincrement,name text,age integer)");
11     }
12
13     @Override
14     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
15         // 数据库更新
16     }
17 }

在Activity里面的实例化一个数据库管理助手实例,接着创建一个数据库实例。getReadableDatabase()和getWirtableDatabase()分别可以创建一个SQLiteDatabase,但是两个方法还是有区别的,前者创建的数据库是以读写方式打开数据库的,当磁盘满的时候,会失败,重新打开会以只读的模式打开数据库,后者创建的数据库也是以读写方式打开的数据库,当磁盘满的时候,会失败报错,所以一般建议使用getReadableDatabase()方式创建数据库。下面的例子列举了数据库的常用方法。

 1  MySQLiteHelper mySQLiteHelper;  // 申明一个数据库管理助手对象
 2     SQLiteDatabase database;        // 申明一个数据库对象
 3
 4     // 构造一个数据库管理助手对象
 5     mySQLiteHelper=new MySQLiteHelper(this,"testdb",null,1);
 6     // 该方法创建一个数据库,可以读写,磁盘满了会自动更改模式为只读模式,getWritableDatabase()盘满报错
 7     database=mySQLiteHelper.getReadableDatabase();
 8     // 创建一个数据表
 9     database.execSQL("create table mytable(id integer primary key autoincrement,name text,age integer)");
10     // 增加数据(第一种方法)
11     ContentValues contentValues=new ContentValues();
12     contentValues.put("id",1);
13     contentValues.put("name","隔壁老王");
14     contentValues.put("age",30);;
15     database.insert("mytable",null,contentValues);
16     // 增加数据(方法二)
17     String intsert="intsert into mytable(id,name,age) value(1,\"隔壁老王\",30)";
18     database.execSQL(intsert);
19     // 删除数据(删除表mytable,id=1那一行开始的系列数据)(方法一)
20     database.delete("mytable","id=?",new String[]{"1"});
21     // 删除数据9方法二)
22     String delete="delete from mytable where id=2";
23     database.execSQL(delete);// 执行SQL语句
24     // 查询数据(返回一个指针索引,以此调用相应方法查询数据)
25     Cursor cursor=database.query("mytable",new String[]{"id","name","age"},null,null,null,null,null);
26     while (cursor.moveToNext()){
27         int idindex=cursor.getColumnIndex("id");
28         int id=cursor.getInt(idindex);
29
30         int nameindex=cursor.getColumnIndex("name");
31         String name=cursor.getString(nameindex);
32
33         int ageindex=cursor.getColumnIndex("age");
34         int age=cursor.getInt(ageindex);
35
36         String result=id+" "+name+" "+age+"\n";
37     }
38     // 修改数据
39     ContentValues contentValues1=new ContentValues();
40     contentValues1.put("id",3);
41     contentValues1.put("name","隔壁小王");
42     contentValues1.put("age",15);
43     database.update("mytable",contentValues1,"id=?",new String[]{"1"});
44     // 关闭数据库
45     database.close();

时间: 2024-12-17 04:50:54

SQLite数据库的基本使用的相关文章

在Android程序中使用已有的SQLite数据库

已经将这篇文章迁移至 Code问答,你也能够到这里查看这篇文章,请多多关注我的新技术博客CodeWenDa.com 在中文搜索中,没有找到一篇比較好的关于怎样在Android应用中使用自己事先创建好的数据库的文章,于是在谷歌上找到这篇英文文章,依照它的步骤,測试成功.决定把这篇文章大致的翻译一下,想看原文的能够点击这里:http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/ .

iOS中 FMDB第三方SQLite数据库 UI_20

1.什么是FMDB? FMDB是iOS平台下SQLite数据库,只不过它是OC方式封装了C语言的SQLite语句,使用起来更加面向对象 2.FMDB的优点:1.使用起来更加面向对象; 2.对比苹果自带的 Core Data 数据管理工具更加的轻量级,更加的灵活,而且FMDB支持跨平台; 3.提供多线程下的数据安全保护机制,有效地防止数据混乱 3.FMDM中重要的类: FMDBDataBase: 它代表一个数据库对象,(我们需要创建数据库对象时就使用这个类) FMDBDataBaseQueue:

【Android】Sqlite数据库增删改查

Android系统内置一个Sqlite数据库,如果app需要使用Sqlite数据库数据库存储数据,Android会为此app生成一个.db文件.这个数据库在data/data/<package_name>/databases里面,其中<package_name>为该安卓app的工程包名,这个目录必须root后才能看到.在Windows,单机的应用程序,存储数据,基本放到一个文件里面,正如游戏的存档,基本就是把当前的游戏状态存到一个用户很难找到的文件里面.每次存档读档就是一个从这个存

Sqlite数据库创建、删除、降级笔记

(1).在创建sqlite数据库时需要注意oncreate()方法只有在第一次创建数据库时候运行.当数据库删除后也会执行,sqlite不支持数据库删除,但可以删除相应的文件,即删了数据库.当我们再次配置文件时候就会执行oncreate()了. (2).onUpgrade()只有在版本号发生改变(增加)时候才会执行,很多时候我们直接在onUpgrade()里添加我们想插入的表或者列,但会报错,那是因为你之前版本onUpgrade里的语句会再次执行,若之前插入了表.或者行,此时会再执行一次,因此每次

Python操作SQLite数据库

连接数据库 从2.5版本开始,Python的标准库中就有了一个专门用于SQLite的sqlite3模块.连接SQLite数据库方式如下: import sqlite3 as dbapi con = dbapi.connect('population.db') cur = con.cursor() 第一个语句用于引用数据库API: 第二个语句创建了一个到数据库的连接(connection):调用数据库模块的connect方法.该方法的参数是一个字符串,它定义了我们所要连接的那个数据库.由于SQLi

Android SQLite数据库使用示例

简单介绍一下,现在的主流移动设备像Android.iPhone等都使用SQLite作为复杂数据的存储引擎,在我们为移动设备开发应用程序时,也许就要使用到SQLite来存储我们大量的数据,所以我们就需要掌握移动设备上的SQLite开发技巧.对于Android平台来说,系统内置了丰富的API来供开发人员操作SQLite,我们可以轻松的完成对数据的存取. 下面我们用SQLite来开发一个英语词典.下图是项目结构-- MySQLite.java package sn.qdj.sqlitedemo; im

Windows通过脚本建立SQLite数据库

用脚本建立一个SQLite数据库 依次建立以下两个文件: 1)一个BAT文件:script.bat @ECHO OFF C: CD %HOMEPATH%/Desktop SQLITE3 TEST_DB.DB < a.sql SQLITE3 TEST_DB.DB .dump > result.sql Sqlite3程序可以从Sqlite的官方网站上下载到 2)一个SQL文件:a.sql,里面存储了SQLite的建库脚本,如下例: --SQLite脚本 a.sql --创建PERSONS类 CRE

Android 使用存放在存assets文件夹下的SQLite数据库

因为这次的项目需要自带数据,所以就就把数据都放到一个SQLite的数据库文件中了,之后把该文件放到了assets文件夹下面.一开始打算每次都从assets文件夹下面把该文件夹拷贝到手机的SD卡或者手机自身的存储上之后再使用,后来考虑到每次都拷贝的话效率不高,并且如果涉及到对数据库的修改操作的话拷贝之后数据就被恢复了. 因此就写了该封装,该封装只是在第一次使用数据库文件的时候把该文件夹拷贝到手机的/data/data/应用程序报名/database文件夹下,之后就直接从这个地方使用了.并且它允许你

SqlIte数据库并发性

把遇到的一些小问题都记下来,告诉自己,一些小细节会铸成打错的 今天没事复习以前的知识,用sqlite做数据库,发现修改数据的时候等好久才有反应,而且还失败,可是过一会之后又会好,好了以后又是一样,种以为是自己的语句有问题,测试了好多次,感觉没问题,在到网上查查错误才发现,原来sqlite不可以并发处理数据,我要说的不是这个问题,一个好的习惯可以避免所有的小问题,前面的解决方法就是把datareader等要释放的释放,关闭的关闭就可以,这本来就是要的,但是自己却没有这么做,这一个小问题纠结了我一个

微信 SQLite 数据库修复实践

https://mp.weixin.qq.com/s/N1tuHTyg3xVfbaSd4du-tw 微信 SQLite 数据库修复实践 原创 2017-04-25 guoling WeMobileDev 1.前言 众所周知,微信在后台服务器不保存聊天记录,微信在移动客户端所有的聊天记录都存储在一个 SQLite 数据库中,一旦这个数据库损坏,将会丢失用户多年的聊天记录.而我们监控到现网的损坏率是0.02%,也就是每 1w 个用户就有 2 个会遇到数据库损坏.考虑到微信这么庞大的用户基数,这个损坏