您的位置:首页 > 数据库

SQLiteDatabase

2015-07-24 10:54 267 查看
在这里我来为大家说说关于Android中SQLiteDatabase是怎么玩的:

SQLiteDatabase 简介

1、 SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库一样,您不需要在系统中配置。

2、 就像其他数据库,SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite 直接访问其存储文件。

SQLiteDatabase 特点

1.不需要一个单独的服务器进程或操作的系统(是没有服务器的)。

SQLite 不需要配置,这意味着不需要安装或管理。

2.一个完整的 SQLite 数据库是存储在一个单一的跨平台的磁盘文件。

3.SQLite 是非常小的,是轻量级的,完全配置时小于 400KiB,省略可选功能配置时小于250KiB。

4.SQLite 是自给自足的,这意味着不需要任何外部的依赖。

......

Android 中内置了对SQLite数据库的支持。

Android 对SQLite的支持

Google为Andriod的较大的数据处理提供了SQLite,并且提供了SQLiteOpenHelper助手类帮助创建和管理SQlite数据库。

下表列出了一些常用的方法:

SQLiteDatabase 创建数据库步骤

1.继承SQLiteOpenHelper 类。

2.重写onCreate()、onUpdate()方法。

3.创建SQLiteOpenHelper 实现类对象。

public void createDB(View view ){
sqliteDB studentdb= new sqliteDB(this);
studentdb.getReadableDatabase();
}

public class sqliteDB extendsSQLiteOpenHelper {
private static final String STUDENT_DB_BANE = "student.db";
private static final int STUDENT_DB_VERSION = 1;
private static final String STUDENT_SQL = "CREATE TABLESTUDENT(" +
"_ID INTEGER PRIMARY KEY AUTOINCREMENT," +
"CODE VERCHAR(255) NOT NULL," +
"NAME VERCHAR(255) NOT NULL" +
")";
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(STUDENT_SQL);
}
//升级版本时,使用该方法
@Override
public voidonUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.e("onUpgrade:","oldVersion:"+oldVersion+"newVersion:"+newVersion);
}
}


添加一条记录

publicvoid insertData(View view){
/*获取一个可写的db对象*/
SQLiteDatabase db=studentDb.getWritableDatabase();
/*第一种插入数据的格式*/
db.execSQL("insert intostudent(stu_code,stu_name)", new Object[]{100,"李斯"});
/*第二种插入数据的方式*/
ContentValues values=newContentValues();
values.put("stu_code","101");
values.put("stu_name","李四");
longresult=db.insert("student", "", values);
Toast.makeText(this,"number:"+result, Toast.LENGTH_SHORT).show();
}


注意:这里返回的result是一个long型,其值为当前插入行的行号值。

查找一条记录

publicvoid queryData(View view){
/*获取一个可读的数据库对象*/
SQLiteDatabasedb=studentDb.getReadableDatabase();
/*第一种插入数据的方式*/
Cursorcursor=db.rawQuery("select * from student where stu_code=?", newString[]{"100"});
/*遍历游标封装数据到集合*/
List<Map<String,String>>data=new ArrayList<Map<String,String>>();
Map<String,String> map;
while(cursor.moveToNext()){
map=new HashMap<String,String>();
for(inti=0;i<cursor.getColumnCount();i++){
Stringkey=cursor.getColumnName(i);
Stringvalue=cursor.getString(i);
map.put(key, value);
}
data.add(map);
}
}


更改一条记录

publicvoid updateData(View view){
/*1.获取一个可写的数据库对象*/
SQLiteDatabasedb=studentDb.getWritableDatabase();
/*2.填充要修改的字段的名称*/
ContentValues values=newContentValues();
/*3.修改学号为100的学生的姓名为'李四'*/
values.put("stu_name", "李四");
/*4.执行修改,获得结果*/
/*Android封装的对数据库的操作*/
int result=db.update("student", values, "stu_code=?", newString[]{"100"});
}


删除一条记录

publicvoid deleteData(View view){
/*获取一个可写的数据库对象*/
SQLiteDatabasedb=studentDb.getWritableDatabase();
/*删除学号为100的学生'*/
db.delete("student","stu_code=?", new String[]{"100"});
}


备注:

1. 创建完成后可以进入sqlite数据库查看结果步骤:

打开sqlite ,没有可以下载。

将原有内容移除。

添加数据库。

找到从android中导出到桌面的student.db为文件打开即进入SQLite:

注意:student.db文件在项目中存在位置,该文件在中,打开后如下:

(我未开启模拟器,这里仅供演示)然后点击fileExplorer在文件列表中找到当前项目,在其中找到data文件,再去目录再找data文件,其中有个database文件,该文件中既有student.db,选定文件后,单击即可另存为到硬盘,

若student.db没有,则可能执行有误。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: