您的位置:首页 > 数据库

数据存储--SQLite创建数据库

2016-04-04 17:03 537 查看

SQLite简介

SQLite是安卓系统中内置的轻量级的数据库,可以应用于数据的存储,比之文件存储和SharePreference存储数据,具有更加的灵活性,存储量更大,数据也更加复杂。

创建数据库

android为了然我们更加方便的管理数据库,专门提供了一个SQLiteOpenHelper帮助类,借助这个类就可以非常简单地对数据库进行创建和升级。

SQLiteOpenHelper中有两个非常重要的实例方法:getReadableDatabase()和getWritableDatabase()

创建数据库的代码如下:

public class MyDatabaseHelper extends SQLiteOpenHelper {
private Context context;

public static  final String CREATE_STUDENT="create table book(id integer primary key autoincrement,name text,age integer,clazz text)";

public MyDatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
this.context=context;
}

@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_STUDENT);
Toast.makeText(context, "数据库创建成功", Toast.LENGTH_SHORT).show();
}

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


public MyDatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version)

其中的四个参数为主线程的引用,数据库的名称,自定义的cursor对象,数据库的版本号,版本号最小为1

创建数据库的代码

myDatabaseHelper=new MyDatabaseHelper(this,"school.db",null,1);
myDatabaseHelper.getWritableDatabase();


当创建了数据库之后,重复执行上面的代码,不会重复创建。



升级数据库

如果我们要添加一张表到上面的数据库中,我们就要升级数据库了。

注意在onUpgrade()方法中代码的填写

相应的代码如下:

public class MyDatabaseHelper extends SQLiteOpenHelper {
private Context context;

public static  final String CREATE_STUDENT="create table book(id integer primary key autoincrement,name text,age integer,clazz text)";
public static  final String CREATE_HELLOWORD="create table helloword(id integer primary key autoincrement,name text,age integer,clazz text)";

public MyDatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
this.context=context;
}

@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_STUDENT);
db.execSQL(CREATE_HELLOWORD);
Toast.makeText(context, "数据库创建成功", Toast.LENGTH_SHORT).show();
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("drop table if exists book");
db.execSQL("drop table if exists helloword");
Toast.makeText(context, "升级成功", Toast.LENGTH_SHORT).show();
onCreate(db);
}
}


同时在逻辑代码中,创建数据库的时候,我们要将数据库的版本号更改为比上一次大的数据,这样就会执行onUpgrade()方法中的代码了

myDatabaseHelper=new MyDatabaseHelper(this,"school.db",null,3);
db=myDatabaseHelper.getWritableDatabase();




adb shell查看数据库数据

adb是Android SDK中自带的一个工具,使用这个工具,可以直接对模拟器或手机进行调试。他存放在sdk的platfrom-tools目录下,需要把它的路径配置到环境变量中。

将其路径配置到path系统变量中。

查看数据库内容的代码示例:

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