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"}); 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)方法各参数的含义: value为ContentValues类型数据:ContentValues类似于map,相对于map,它提供了存取数据对应的put(String key,Xxx value)和getAsXxx(String key)方法, key为字段名称,value为字段值,Xxx指的是各种常用的数据类型。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |