加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

SQLite数据库

发布时间:2020-12-13 00:17:04 所属栏目:百科 来源:网络整理
导读:SQLite数据库存放路径:/data/data/packageName/databases SQLite支持数据类型:NULL,INTEGER,REAL(浮点型),TEXT(字符串文本),BLOB(二进制对象)。 SQLite最大特点:可以把各种数据类型放到任何字段,不用关心字段声明类型,也可以存放任意长度内容,但
SQLite数据库存放路径:/data/data/packageName/databases

SQLite支持数据类型:NULL,INTEGER,REAL(浮点型),TEXT(字符串文本),BLOB(二进制对象)。

SQLite最大特点:可以把各种数据类型放到任何字段,不用关心字段声明类型,也可以存放任意长度内容,但声明为INTEGER PRIMARY KEY 例外,只能存储64位整数。

继承SQLiteOpenHelper类:

构造方法:调用父类构造器super(context,name,factory,version)。//context是上下文对象;name数据库名;factory是cursor游标工厂,通常用默认的,传入null;version数据版本号。

复写onCreate(SQLiteDatabasedb);数据库第一次被创建时调用,特别适合生成数据库表结构和初始化。在第一次调用getReadableDatabase()或getWritableDatabase方法时调用。

onUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion)方法:只有在数据库版本发生变化的时候调用,判断新创建的数据库版本号是否大于原先版本,如果是则调用,可以用来增加字段的更新数据库结构操作。

SQLiteDatabase类:

该类封装了一些操作数据库的API,使用该类可以完成对数据进行添加(Create)、查询(Retrieve)、更新(Update)和删除(Delete)操作(这些操作简称为CRUD)。

重要方法:execSQL()方法可以执行insert、delete、update和CREATE TABLE之类有更改行为的SQL语句; rawQuery()方法用于执行select语句。

例子:

SQLiteDatabase db = ....;

db.execSQL("insert into person(name,age) values(?,?)",new Object[]{"name",10});

//Cursor是结果集游标,用于对结果集进行随机访问,Cursor与JDBC中的ResultSet作用很相似。

Cursor cursor = db.rawQuery("select * from person where name like ? and age=?",new String[]{"%name%","4"});
db.close();

Cursor方法:

使用moveToNext()方法可以将游标从当前行移动到下一行,如果已经移过了结果集的最后一行,返回结果为false,否则为true。另外Cursor 还有常用的moveToPrevious()方法(用于将游标从当前行移动到上一行,如果已经移过了结果集的第一行,返回值为false,否则为true )、moveToFirst()方法(用于将游标移动到结果集的第一行,如果结果集为空,返回值为false,否则为true )和moveToLast()方法(用于将游标移动到结果集的最后一行,如果结果集为空,返回值为false,否则为true )。

QLiteDatabase还专门提供了对应于添加、删除、更新、查询的操作方法:

insert(table,null,values)、null指定空值字段的名称,当第三个参数为空时使用

delete(table,selection,selectionArgs)、

update(table,values,selectionArgs)、

query(table,columns,selectionArgs,groupBy,having,orderBy,limit)方法各参数的含义:
table:表名。相当于select语句from关键字后面的部分。如果是多表联合查询,可以用逗号将两个表名分开。
columns:要查询出来的列名。相当于select语句select关键字后面的部分。
selection:查询条件子句,相当于select语句where关键字后面的部分,在条件子句允许使用占位符“?”
selectionArgs:对应于selection语句中占位符的值,值在数组中的位置与占位符在语句中的位置必须一致,否则就会有异常。
groupBy:相当于select语句group by关键字后面的部分
having:相当于select语句having关键字后面的部分
orderBy:相当于select语句order by关键字后面的部分,如:personid desc,age asc;
limit:指定偏移量和获取的记录数,相当于select语句limit关键字后面的部分。

value为ContentValues类型数据:ContentValues类似于map,相对于map,它提供了存取数据对应的put(String key,Xxx value)和getAsXxx(String key)方法, key为字段名称,value为字段值,Xxx指的是各种常用的数据类型。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读