Android中SQLite存储

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值