您的位置:首页 > 移动开发 > Android开发

Android中SQLite存储

2016-06-26 20:49 344 查看

SQLite存储

是什么?

软件:开源,体积小,适合便携式设备(例如手机)

数据库管理系统(DBMS)

Why use :安全,检索、更新方便

应用场合:

1、更好的存储数据

2、更好的管理数据

3、提高数据的安全

FAQ:

1、将数据直接存储到一些文件的缺陷:

1)安全性相对较差

2)跟新和查询效率较低

3)易读性相对较差

2、SQLite 存储数据的形式是怎样的?

1)SQLite 是一个DBMS,此系统可以管理多个数据库(DB)

2)SQLite 中的一个DB可以存储多张二维表(行和列)

3)SQLite 中表(table)是时间的最基本存储单元,DB中所有的数据都是要存储在表中的,表中的行通常称之为记录,表中的列通常称之为字段或数据项

Android和IOS目前的系统中都内置了SQLite数据库

Android平台框架:

Application AP(应用层)

Applicatuin FrameWork (AF)

Libraries(SQLite ,......)+虚拟机

Linux内核系统

3、SQLite在Android中的应用

3.1)FAQ

1)Android中有几个SQLite:1个

2)Android系统中有内置的数据库(DB)吗?(有,很多个)

A)手机的联系人

B)媒体库

C)便签(备忘录)

3)Android如何操作SQLite数据库?

A)Java:API

B)Doc:adb , sqlite3

C)Sql(结构化存储语言)

3.2)API

1)Context

2)SQLiteDatabase(发送SQL,将sql语句发送到SQLite端)

3)SimpleCursorAdapter(将cursor中数据构建成item)

4)Cursor

5)SQLiteOpenHelper(工具类,抽象类:封装SQLite数据库的操作)

3.3)SQL(基本应用)

1)DDL(数据定义语言):create,alter,drop,...

2)DML(数据操纵语言):insert,update,delete,select,...

3)DCL(数据控制语言):commit, rollback

3.4)SQLite应用的基本步骤

1)获得SQLiteDatabase对象

2)借助SQLiteDatabase对象发送SQL

3)释放资源()

4、SQLite在Android中的应用扩展((自定义的一个sqlite)在activity中这就这个类的增、删、改、查方法就可以:)

部分代码

public class NoteProvider {

private DBHelper dbHelper;

public NoteProvider(Context context){

dbHelper=new DBHelper(context,"note.db" , null, 1);

}

/**查询数据*/

public Cursor query(String table, String selection,

String[] selectionArgs,String orderBy){

SQLiteDatabase sdb=dbHelper.getReadableDatabase();

return sdb.query(table, null, selection, selectionArgs, null, null, orderBy);

}

/**写入数据*/

public long insert(String table ,ContentValues values){

//创建或打开数据库

SQLiteDatabase sdb=dbHelper.getWritableDatabase();

//写入数据

long id = sdb.insert(table, null, values);

//释放资源

sdb.close();

return id ;

}

/**更新数据*/

public void update(String table, ContentValues values, String whereClause, String[] whereArgs){

//创建或打开数据库

SQLiteDatabase sdb=dbHelper.getWritableDatabase();

sdb.update(table, values, whereClause, whereArgs);

sdb.close();

}

/**删除数据*/

public void delete(String table, String whereClause, String[] whereArgs){

SQLiteDatabase sdb=dbHelper.getWritableDatabase();

sdb.delete(table, whereClause, whereArgs);

sdb.close();

}

/**工具类*/

class DBHelper extends SQLiteOpenHelper{

public DBHelper(Context context, String name, CursorFactory factory, int version) {

super(context, name, factory, version);

// TODO Auto-generated constructor stub

}

/**此方法在数据库创建时执行*/

@Override

public void onCreate(SQLiteDatabase db) {

Log.i("TAG", "DBHelper.onCreate");

String sql="create table notetable("

+ "_id integer primary key autoincrement,"

+ "context text not null,"

+ "created text not null)";

db.execSQL(sql);

Log.i("TAG", "create ok");

}

/**此方法在数据版本升级时执行,在此方法中做什么由业务而定*/

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

//db.execSQL("");

}

}

}

SQLite 数据库在doc界面的访问

1、Java代码的访问

2、命令行访问(SQLite3):

1)进入Linux内核系统(adb shell)

2)进入内部存储目录cd data/data

3)查看内部存储目录结构(ls)

4)进入要访问的sqlite数据库的项目目录(cd com.tarena.yy.sqlite02)

5)显示当前目录的目录结构(ls)

6)进入数据库目录(cd database)

7)打开数据库(sqlite3 contact.db)

8)查看数据库表(.table)

9)执行查询(例如:select * from contact;注意:没加“;”时,直接加; 就行了,不用再写select语句了)

10)退出sqlite(. exit)

11)退出Linux(exit)

12)查看帮助(. help)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: