Android应用中如何使用数据库 (安卓 使用数据库)
随着智能手机的快速普及,越来越多的企业开始向移动应用领域转型,开发出各种各样的Android应用。在这些应用程序中,需要存储用户数据的需求也日益增多。一般而言,开发人员可以使用数据库来存储和管理这些数据。本文将详细介绍 Android 应用中如何使用数据库。
一、数据库介绍
数据库是指一组相关数据的。数据库软件可以让用户在计算机或服务器上创建一个或多个数据库来存储数据。数据库能够非常方便地对数据进行增加、删除、修改和查询,是现代计算机应用中必不可少的一项技术。
在 Android 应用中,常用的数据库有 SQLite 和 ORACLE 等。
二、SQLite 简介
SQLite 是一个开源的轻量级嵌入式关系型数据库管理系统。它被广泛应用在各种移动应用程序中,包括 Android 应用。SQLite 具有体积小、速度快、易于集成等优点,在开发 Android 应用时,使用 SQLite 可以方便地管理和存储用户数据。
在 Android 应用中使用 SQLite 数据库,需要使用 Android 提供的 API 以及 SQLite 的 SQL 语句来操作数据库。
三、Android 应用使用 SQLite 数据库的示例
下面将通过一个简单的 Android 应用示例来介绍如何使用 SQLite 数据库。
在 Android Studio 中,创建一个新项目并选中 Empty Activity 模板。然后,创建一个新的类来管理数据库,如下图所示:
代码如下所示:
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = “User.db”;
private static final String TABLE_NAME = “user_table”;
private static final String COL_ID = “ID”;
private static final String COL_NAME = “NAME”;
private static final String COL_EML = “EML”;
private static final String COL_PHONE = “PHONE”;
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(“create table ” + TABLE_NAME + ” (ID INTEGER PRIMARY KEY AUTOINCREMENT,NAME TEXT,EML TEXT,PHONE TEXT)”);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL(“DROP TABLE IF EXISTS ” + TABLE_NAME);
onCreate(db);
}
}
上面的代码中,DatabaseHelper 类继承了 Android 提供的 SQLiteOpenHelper 类,并重写了该类的 onCreate() 和 onUpgrade() 方法。在 onCreate() 方法中,创建了一个名为 User.db 的数据库,并在数据库中创建了一个名为 user_table 的表。该表有4个字段,即 ID、NAME、EML 和 PHONE。在 onUpgrade() 方法中,当数据库需要升级时,会删除原有的 user_table 表,并新建一个新的表。
接下来,在 MnActivity 类中,定义添加用户、更新用户和删除用户的方法:
public class MnActivity extends AppCompatActivity {
EditText editTextName, editTextEml, editTextPhone, editTextID;
Button addButton, updateButton, deleteButton, viewButton;
DatabaseHelper myDb;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mn);
editTextName = (EditText)findViewById(R.id.editText_name);
editTextEml = (EditText)findViewById(R.id.editText_eml);
editTextPhone = (EditText)findViewById(R.id.editText_phone);
editTextID = (EditText)findViewById(R.id.editText_id);
addButton = (Button)findViewById(R.id.button_add);
updateButton = (Button)findViewById(R.id.button_update);
deleteButton = (Button)findViewById(R.id.button_delete);
viewButton = (Button)findViewById(R.id.button_view);
myDb = new DatabaseHelper(this);
addButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
boolean isInserted = myDb.insertData(editTextName.getText().toString(),
editTextEml.getText().toString(),
editTextPhone.getText().toString() );
if(isInserted == true)
Toast.makeText(MnActivity.this,”Data Inserted”,Toast.LENGTH_LONG).show();
else
Toast.makeText(MnActivity.this,”Data not Inserted”,Toast.LENGTH_LONG).show();
}
});
updateButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
boolean isUpdated = myDb.updateData(editTextID.getText().toString(),
editTextName.getText().toString(),
editTextEml.getText().toString(),
editTextPhone.getText().toString());
if(isUpdated == true)
Toast.makeText(MnActivity.this,”Data Updated”,Toast.LENGTH_LONG).show();
else
Toast.makeText(MnActivity.this,”Data not Updated”,Toast.LENGTH_LONG).show();
}
});
deleteButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Integer deletedRows = myDb.deleteData(editTextID.getText().toString());
if(deletedRows > 0)
Toast.makeText(MnActivity.this,”Data Deleted”,Toast.LENGTH_LONG).show();
else
Toast.makeText(MnActivity.this,”Data not Deleted”,Toast.LENGTH_LONG).show();
}
});
viewButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Cursor res = myDb.getAllData();
if(res.getCount() == 0) {
// show message
showMessage(“Error”,”Nothing found”);
return;
}
StringBuffer buffer = new StringBuffer();
while (res.moveToNext()) {
buffer.append(“ID :”+ res.getString(0)+”\n”);
buffer.append(“NAME :”+ res.getString(1)+”\n”);
buffer.append(“EML :”+ res.getString(2)+”\n”);
buffer.append(“PHONE :”+ res.getString(3)+”\n\n”);
}
// Show all data
showMessage(“Data”,buffer.toString());
}
});
}
public void showMessage(String title,String Message){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setCancelable(true);
builder.setTitle(title);
builder.setMessage(Message);
builder.show();
}
}
上面的代码中,通过调用 DatabaseHelper 类中定义的 insertData()、updateData()、deleteData() 和 getAllData() 方法,分别实现了添加用户、更新用户、删除用户和查看用户的功能。
四、
使用数据库是 Android 应用开发中的重要技术之一。本文从介绍数据库的基本概念开始,详细讲解了在 Android 应用中使用 SQLite 数据库的方法,并通过一个简单的示例程序演示了数据库的具体操作过程。希望本文能够帮助读者更好地理解 Android 应用中数据库的应用。