【教程】如何在安卓系统中操作数据库 (安卓操作数据库)
随着智能手机的普及,越来越多的应用程序需要使用数据存储,而数据库成为了存储数据的重要手段之一。在安卓系统中,我们可以使用SQLite数据库进行数据存储和操作。本文将为大家介绍如何在安卓系统中操作数据库。
1.创建数据库
在安卓系统中创建数据库有多种方式,其中最常用的方式是在应用程序的MnActivity类中创建。在MnActivity中创建数据库要分为两个步骤:在onCreate方法中创建数据库,并在onUpgrade方法中更新数据库。
(1)在onCreate方法中创建数据库
“`java
public class MnActivity extends AppCompatActivity {
private static final String DB_NAME=”mydb”; //数据库名称
private static final int DB_VERSION=1; //数据库版本号
private SQLiteDatabase db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mn);
}
private void createDatabase() {
DBHelper dbHelper = new DBHelper(this,DB_NAME,null,DB_VERSION);
db=dbHelper.getWritableDatabase();
}
}
“`
在以上代码中,我们创建了一个DBHelper类用于继承SQLiteOpenHelper类,然后重写onCreate方法,在该方法中创建数据库并返回一个可写的数据库对象。
DBHelper类的实现如下:
“`java
public class DBHelper extends SQLiteOpenHelper {
private static final String CREATE_TABLE_SQL=”CREATE TABLE Person(_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER)”;
public DBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_TABLE_SQL);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
“`
在以上代码中,我们定义了一个CREATE_TABLE_SQL语句用于创建一个Person表,该表有三个字段:_id、name和age。
(2)在onUpgrade方法中更新数据库
有时候,我们需要更新数据库,比如添加新的表或字段等。此时,我们需要在DBHelper中重写onUpgrade方法,在该方法中执行更新操作。
“`java
public class DBHelper extends SQLiteOpenHelper {
private static final String CREATE_TABLE_SQL=”CREATE TABLE Person(_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER)”;
private static final String ALTER_TABLE_SQL=”ALTER TABLE Person ADD COLUMN address TEXT”;
public DBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_TABLE_SQL);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if(oldVersion
db.execSQL(ALTER_TABLE_SQL);
}
}
}
“`
在以上代码中,我们定义了一个ALTER_TABLE_SQL语句用于在Person表中添加一个address字段,在onUpgrade方法中判断如果当前版本低于2,则执行该更新操作。
2.向数据库中插入数据
插入数据是数据库操作中的重要环节之一,在安卓系统中插入数据有多种方式,其中最常用的方式是使用ContentValues类。
“`java
private void insertData(){
ContentValues values=new ContentValues();
values.put(“name”,”Tom”);
values.put(“age”,18);
db.insert(“Person”,null,values);
}
“`
在以上代码中,我们创建了一个ContentValues对象,并向其中添加了两个字段:name和age,然后将该对象作为参数调用db的insert方法,将数据插入到名为Person的表中。如果在表中定义了自增长字段,我们可以不用指定该字段的值,系统会自动生成。
3.查询数据库中的数据
查询操作是数据库操作中另一个重要的环节,我们在安卓系统中查询数据库中的数据也有多种方式,比如查询表中的所有数据和查询特定数据等。
(1)查询表中的所有数据
“`java
private void queryAllData(){
Cursor cursor=db.query(“Person”,null,null,null,null,null,null);
if(cursor.moveToFirst()){
do{
int id=cursor.getInt(cursor.getColumnIndex(“_id”));
String name=cursor.getString(cursor.getColumnIndex(“name”));
int age=cursor.getInt(cursor.getColumnIndex(“age”));
Log.d(“MnActivity”,”id=”+id+”,name=”+name+”,age=”+age);
}while(cursor.moveToNext());
}
cursor.close();
}
“`
在以上代码中,我们先调用db的query方法查询Person表中的所有数据,然后通过Cursor类遍历查询结果,最后取出每个字段的值并输出到Log中。
(2)查询特定数据
“`java
private void queryData(){
Cursor cursor=db.query(“Person”,null,”name=?”,new String[]{“Tom”},null,null,null);
if(cursor.moveToFirst()){
do{
int id=cursor.getInt(cursor.getColumnIndex(“_id”));
String name=cursor.getString(cursor.getColumnIndex(“name”));
int age=cursor.getInt(cursor.getColumnIndex(“age”));
Log.d(“MnActivity”,”id=”+id+”,name=”+name+”,age=”+age);
}while(cursor.moveToNext());
}
cursor.close();
}
“`
在以上代码中,我们调用db的query方法查询Person表中name字段等于Tom的数据,其他参数的用法与查询所有数据时相同。
4.更新数据库中的数据
更新操作是数据库操作中的另一个重要环节之一,在安卓系统中更新数据库中的数据也有多种方式,比如更新特定数据等。
“`java
private void updateData(){
ContentValues values=new ContentValues();
values.put(“age”,20);
db.update(“Person”,values,”name=?”,new String[]{“Tom”});
}
“`
在以上代码中,我们创建了一个ContentValues对象,并向其中添加了一个字段:age,然后调用db的update方法将名为Person的表中name字段等于Tom的数据的age字段值更新为20。
5.删除数据库中的数据
删除操作也是数据库操作中的重要环节之一,在安卓系统中删除数据库中的数据也有多种方式,比如删除特定数据等。
“`java
private void deleteData(){
db.delete(“Person”,”name=?”,new String[]{“Tom”});
}
“`
在以上代码中,我们调用db的delete方法,将名为Person的表中name字段等于Tom的数据删除。
本文为大家介绍了如何在安卓系统中操作数据库,包括创建数据库、插入数据、查询数据、更新数据和删除数据等方面,读者可以根据自己的需要选择合适的方法进行操作,从而达到存储和读取数据的目的。希望读者在阅读本文后能够了解并掌握安卓系统中操作数据库的方法。