SQLLite数据库创建和使用

最近项目中多次用到数据库,之前一次也是用到的ormlite框架逛,封装的比较好,使用确实简单方便,但是作为一名猿,我们光,只会使用别人封装好的这种也不太好吧,起码自己也该知道这些基础的东西,就算离开框架我们也能完成。鉴于周末没事,特此记录一发。


SQLLite数据库创建和使用

一、写一个数据库辅助类继承抽象类SQLiteOpenHelper,并重载两个方法,并生成构造方法。

SQLLite数据库创建和使用_第1张图片


二、在onCreate()方法中创建数据库表

SQLLite数据库创建和使用_第2张图片



关于这个方法注意一下几点:

* 1、在第一次打开数据库的时候才会走

* 2、在清除数据之后再次运行-->打开数据库,这个方法会走

* 3、没有清除数据,不会走这个方法

* 4、数据库升级的时候这个方法不会走

* 5、建表语句的书写很容易出错,下面贴代码

//建表语句(最后一个字段后面的 类型修饰没有“,”,unique表示该字段唯一性)
String CREAT_FRIEND_TABLE = "Createtable "+TABLE_NAME+"("+COLUMN_ID+" integer primary key autoincrement,"
   
+COLUMN_UID+" text unique,"
   
+COLUMN_NAME+" text,"
   
+COLUMN_USER_IMA+" text,"
   
+COLUMN_AGE+ " integer "+")";
db.execSQL(CREAT_FRIEND_TABLE);
Logger.d("建表成功");


三、关于onUpgrade()数据库版本更新的方法注意一下:

* 1、第一次创建数据库的时候,这个方法不会走

* 2、清除数据后再次运行(相当于第一次创建)这个方法不会走

* 3、数据库已经存在,而且版本升高的时候,这个方法才会调用

* 4、相关语句,自行百度。


四、操作数据库

1、自定义数据库操作类,相当工具类,并通过构造传入SQLiteOpenHelper(辅助类对象)

SQLLite数据库创建和使用_第3张图片

在操作数据库之前我们需要先得到SQLiteDatabase对象

SQLLite数据库创建和使用_第4张图片


2、以下是相关方法的介绍

*1、插入一条数据

//插入一条数据,需要我们传入对应的Model对象

public void inSert(ClassMate classMate) {

  SQLiteDatabase db = mSQliteOpenHelper.getWritableDatabase();

  ContentValues contentValues = new ContentValues();

  contentValues.put(COLUMN_UID, classMate.getUid() + "");

  contentValues.put(COLUMN_NAME, classMate.getName() + "");

  contentValues.put(COLUMN_USER_IMA, classMate.getUserima() + "");

  contentValues.put(COLUMN_AGE, classMate.getAge());

  db.insert(TABLE_NAME, null, contentValues);

  closeDb(db);

}
记得所有操作完成需要关闭数据库
SQLLite数据库创建和使用_第5张图片



*2、删除数据

SQLLite数据库创建和使用_第6张图片


*3、更新数据

SQLLite数据库创建和使用_第7张图片

*4、查询数据

一、查询所有数据

SQLLite数据库创建和使用_第8张图片

SQLLite数据库创建和使用_第9张图片


二、根据条件查询对应的数据

先贴上查询语句:

Cursor query = db
    .query(TABLE_NAME, new String[]{COLUMN_UID, COLUMN_NAME, COLUMN_USER_IMA, COLUMN_AGE},
        COLUMN_UID + "=?", new String[]{String.valueOf(uid)}, null,
        null, null);
各参数意义对应:
able:表名,不能为null
columns:要查询的列名,可以是多个,可以为null,表示查询所有列
selection:查询条件,比如id=? and name=? 可以为null
selectionArgs:对查询条件赋值,一个问号对应一个值,按顺序 可以为null
having:语法have,可以为null
orderBy:语法,按xx排序,可以为null*/
注意点:
第二个参数为需要查询的列名,如果我们需要查询多列如:
String query_uid = query.getString(query.getColumnIndex(COLUMN_UID));
String query_name = query.getString(query.getColumnIndex(COLUMN_NAME));
String query_ima = query.getString(query.getColumnIndex(COLUMN_USER_IMA));
int query_age = query.getInt(query.getColumnIndex(COLUMN_AGE));
那么数组里面的参数必须要包含这些字段,或者第二个参数为null,默认所有,否则报错。
第四个参数是表示为查询条件赋值的,一般对应的第三个参数问号后面的值。
查询结束之后记得关闭游标
然后就是查询条件的书写,其实也是很简单,一般就是  CLOUMN+"=?"(CLOUMN,为我们定义的表字段,如:_name).
上图:

以上介绍,仅记录一次简单学习。更加全面的知识可以移步:
http://www.runoob.com/sqlite/sqlite-where-clause.html



你可能感兴趣的:(数据库,SQLiteDatabase,创建数据库,增删改查)