android数据存储之SQLite篇

来源:互联网 发布:教孩子学编程python 编辑:程序博客网 时间:2024/06/04 00:46

SQLite数据库,手机端轻量级的数据库,在日常的开发过程中经常会使用到,使用的sql语句也都是我们平时操作数据库所使用的sql语句,下面我会对sqlite数据库做一个简单的使用介绍,下面我会给出两种比较常用的方法(由于所有文字纯手打,代码也是想着写着,所以可能出现一些小的拼写错误,还请见谅)

第一种创建数据库的方法:

1、首先我们要创建一个数据库

直接使用openOrCreateDatabase(“参数以1”,“参数2”,“参数3”),“参数1”代表了你数据库的名字,一般以**.db格式命名,“参数2”代表了数据库的读取权限,“参数3”代表了CursorFactory,一般设为null;

例:SQLiteDatabase db=openOrCreateDatabase("mydb.db", MODE_PRIVATE, null);

2、创建了数据库之后,我们就要用sql语句来创建一个表

这是一条创建数据库的sql 语句

string sql="create table if not exists user(_id integer primary key autoincrement,name text not null,age integer not null)"

通过db.execSQL(sql);来执行sql语句,实现数据库表的创建

3、创建了表之后,我们来向表中插入一些数据

string sql="insert into user values(name,age) values('姓名',23)";

还是通过db.execSQL(sql);来执行操作语句

4、数据库中有了数据我们通过cursor来获取到数据库中的数据

例:Cursor cursor=db.rawQuery("这里写入选择语句本例使用“select*from user”",null);

想要获取数据库中的一个数据我们可以使用一下方法:
首先判断cursor是否为空,然后通过moveToNext()来获取下一个数据,通过getColumnindex可以获取当当前属性值下的列数
例:

if(cursor!=null){while(cursor.moveToNext()){string name=cursor.getString(cursor.getColumnindex("name"));}}

这样就能够取到数据库中的数据,大家可以多多操作一下其他的数据操作,增、删、改、查尽量都操作一下

第二种创建数据库的方法

这种事使用SQLiteOpenHelper,这种方法比第一种功能更加强大一些,下面进行介绍

1、创建一个类继承SQLiteOpenHelper

例:
public class MySQLite extends SQLiteOpenHelper {//构造方法中传入必须的参数,版本号这里直接写为1public MySQLite(Context context, String name) {super(context, “数据库名字”, null, 1);}@Overridepublic void onCreate(SQLiteDatabase db) {//数据库创建的时候会执行此方法,可以直接在此处创建一个表string sql="create table if not exists user(_id integer primary key autoincrement,name text not null,age integer not null)";db.execSQL(sql);}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {//此方法在数据库版本信息发生变化的时候会调用}}

2、在需要创建数据库的地方创建数据库

可以直接      MySQLite  mydb=new MySQLite (context,“数据库名”);
然后   SQLiteDatabase db=mydb.getwritabledatabase();
之后可以直接按照上面的方法操作数据库
(getwritabledatabase()是可以写入数据的,而getreadabledatabase()是只读的方式,只是查询的话可以使用getreadabledatabase())

注:

1、使用内置函数进行数据操作

操作sql语句,也可以直接使用数据库自带的内置函数直接操作,使用内置函数操作的时候,需要使用ContentValues存放数据,下面介绍一下
db.insert()方法,其他内置函数建议自己摸索使用
例:
ContentValues values=new ContentValues ();
values.put("属性名",属性值);//操作类似于map
db.insert("表名称",默认值,values)
这样就可以插入一条数据;如果想继续插入第二条数据,可以直接new一个ContentValues ,也可以将原来的ContentValues通过 values.clear()方法释放掉,重新填入新的数据再插入

2、释放资源

由于数据操作完之后会占有一部分资源,为了减少资源的使用,执行完Cursor之后,记得要将Cursor.close();还有db.close();

0 0