易网时代-编程资源站
Welcome
微信登录
编程资源
图片资源库
蚂蚁家优选
PDF转换器
软件资源
软件开发
、
小程序制作
、
系统集成与运维
、
空间租用
、
硬件开发
、
视频监控
、
技术咨询与支持
——联系电话:0311-88999002/88999003
首页
/
操作系统
/
Linux
/
Android游戏开发之数据库SQLite 详细介绍
数据库SQLite介绍
数据库最经典的四个操作 添加、删除、修改、查找,在处理大量数据的时候使用数据库可以帮我们迅速定位当前须要处理的数据,举个例子 好比现在要实现一个搜索功能 用数据库的话只须要其中一个搜索条件 一个数据库语句就可以迅速的在N条数据中找到我们需要的数据,如果不使用数据库那么查找起来会非常麻烦,效率大打折扣,所以在处理大量数据的时候使用数据库是明确的选择,在Android的开发中使用的数据库是SQLite ,它是一个轻量级的数据库 、非常小 、 移植性好、效率高、可靠 ,嵌入式设备因为受到硬件条件的限制所以非常适合使用 SQLite 数据库。
创建与删除数据库
封装一个类去继承SQLiteOpenHelper 在构造函数中传入数据库名称与数据库版本号,数据库被创建的时候会调用onCreate(SQLiteDatabase db) 方法,数据库版本号发生改变的时候会调用onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)方法,可以方便的对软件游戏升级后做出相应处理避免覆盖安装数据库发生改变产生的错误。调用SQLiteOpenHelper 的getReadableDatabase()方法去创建数据库,如果数据库不存在则创建 并且返回SQLiteDatabase对象,如果数据库存在则不创建只返回SQLiteDatabase对象。调用deleteDatabase(DATABASE_NAME)方法 传入数据库名称则可删除数据库。
封装了一个DatabaseHelper类继承SQLiteOpenHelper 我使用了设计模式中的单例模式来处理这个类,这里说一下单例模式 单例模式是常见的代码设计模式之一 它的好处是在于避免在内存中频繁的实例化所以将它的对象写成static 静态 这样它的对象就只有一份存在静态内存区使用的时候只须要通过getInstance()就可以直接拿到这个静态对象。
public
class
DatabaseHelper
extends
SQLiteOpenHelper {
private
static
DatabaseHelper mInstance =
null
;
/** 数据库名称 **/
public
static
final
String DATABASE_NAME =
"xys.db"
;
/** 数据库版本号 **/
private
static
final
int
DATABASE_VERSION =
1
;
/**数据库SQL语句 添加一个表**/
private
static
final
String NAME_TABLE_CREATE =
"create table test("
+
"_id INTEGER PRIMARY KEY AUTOINCREMENT,"
+
"name TEXT,"
+
"hp INTEGER DEFAULT 100,"
+
"mp INTEGER DEFAULT 100,"
+
"number INTEGER);"
;
DatabaseHelper(Context context) {
super
(context, DATABASE_NAME,
null
, DATABASE_VERSION);
}
/**单例模式**/
static
synchronized
DatabaseHelper getInstance(Context context) {
if
(mInstance ==
null
) {
mInstance =
new
DatabaseHelper(context);
}
return
mInstance;
}
@Override
public
void
onCreate(SQLiteDatabase db) {
/**向数据中添加表**/
db.execSQL(NAME_TABLE_CREATE);
}
@Override
public
void
onUpgrade(SQLiteDatabase db,
int
oldVersion,
int
newVersion) {
/**可以拿到当前数据库的版本信息 与之前数据库的版本信息 用来更新数据库**/
}
/**
* 删除数据库
* @param context
* @return
*/
public
boolean
deleteDatabase(Context context) {
return
context.deleteDatabase(DATABASE_NAME);
}
}
在这个类中使用DatabaseHelper对象 实现创建与删除数据库、
public
class
NewSQLite
extends
Activity {
DatabaseHelper mDbHelper =
null
;
SQLiteDatabase mDb =
null
;
Context mContext =
null
;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
setContentView(R.layout.create_sql);
mContext =
this
;
//创建DatabaseHelper对象
mDbHelper = DatabaseHelper.getInstance(mContext);
//调用getReadableDatabase方法如果数据库不存在 则创建 如果存在则打开
mDb= mDbHelper.getReadableDatabase();
Button button0 = (Button)findViewById(R.id.createDateBase);
button0.setOnClickListener(
new
OnClickListener() {
@Override
public
void
onClick(View arg0) {
Toast.makeText(NewSQLite.
this
,
"成功创建数据库"
, Toast.LENGTH_LONG).show();
}
});
Button button1 = (Button)findViewById(R.id.deleteDateBase);
button1.setOnClickListener(
new
OnClickListener() {
@Override
public
void
onClick(View arg0) {
mDbHelper = DatabaseHelper.getInstance(mContext);
// 调用getReadableDatabase方法如果数据库不存在 则创建 如果存在则打开
mDb = mDbHelper.getReadableDatabase();
// 关闭数据库
mDbHelper.close();
// 删除数据库
mDbHelper.deleteDatabase(mContext);
Toast.makeText(NewSQLite.
this
,
"成功删除数据库"
, Toast.LENGTH_LONG).show();
}
});
super
.onCreate(savedInstanceState);
}
}
创建的数据库会被保存在当前项目中 databases 路径下 具体如图所示
收藏该网址
版权所有©石家庄振强科技有限公司2024
冀ICP备08103738号-5
网站地图