Android Sqlite数据库是一个怎样的数据库?
答:是一种嵌入式小型设备,移动设备,的数据库,应用在穿戴设备(例如:智能手表,计算手环 等等),移动设备(例如:Android系统类型的手机 等等),属于嵌入式关系型数据库。
在Android开发过程中,只需调用Android所提供的Sqlite API接口,底层会调用Sqlite.c 程序去生成数据库,创建表字段 等等;
虽然在Android Sqlite3 支持了 null,integer,real,char(n),varchar(n),decimal(p,s),这些类型,但是 请注意:除了ID唯一主键是integer类型,其他所有类型,最后都会变成TEXT类型。
在Android API中提供了,SQLiteOpenHelper对数据库创建,管理操作等;
创建表的语句:create table student_table(_id integer primary key autoincrement, name text);
import android.content.Context;
import android.database.DatabaseErrorHandler;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class MySQLiteOpenHelper extends SQLiteOpenHelper {
/**
* 数据库的名称
*/
private static final String DATABASE_NAME = "PersonDB.db";
/**
* 数据库的版本号,以后要升级数据库,修改版本号为 +1 即可
*/
private static final int DATABASE_VERSION = 1;
private static MySQLiteOpenHelper instance;
/**
* 单例模式
* @param context 传入上下文
* @return 返回MySQLiteOpenHelper对象
*/
public static MySQLiteOpenHelper getInstance(Context context) {
if (null == instance) {
synchronized (MySQLiteOpenHelper.class) {
if (null == instance) {
instance = new MySQLiteOpenHelper(context, DATABASE_NAME, null, DATABASE_VERSION);
}
}
}
return instance;
}
// 构造方法不对外暴露
private MySQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
// 构造方法不对外暴露
private MySQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version, DatabaseErrorHandler errorHandler) {
super(context, name, factory, version, errorHandler);
}
// 初始化操作,会执行onCreate
@Override
public void onCreate(SQLiteDatabase db) {
// 创建一个 student_table表
db.execSQL("create table student_table(_id integer primary key autoincrement, name text);");
}
// 用于升级数据库,当Version 变动了,就会调用onUpgrade方法
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
sqLiteOpenHelper.getWritableDatabase();,没有数据库就创建数据库,有数据库就打开数据库。
@Override
public void onClick(View v) {
MySQLiteOpenHelper sqLiteOpenHelper = MySQLiteOpenHelper.getInstance(MainActivity.this);
sqLiteOpenHelper.getWritableDatabase();
}
生成完成:
看看表结构:
谢谢大家的观看,更多精彩技术博客,会不断的更新,请大家访问,
刘德利CSDN博客, http://blog.csdn.net/u011967006