Android学习总结--存储和数据库知识点

目录

I. Shared Preferences(共享首选项)

1.创建和获取Shared Preferences对象:

 2.保存数据:

3.读取数据:

II. 文件系统存储

1.写入文件:

2.读取文件:

III. SQLite数据库

1.创建数据库:

2.插入数据:

3.查询数据:

4.更新数据:

5.删除数据:

总结


I. Shared Preferences(共享首选项)

Shared Preferences是Android提供的一种轻量级的数据存储方式,用于存储少量的键值对数据

1.创建和获取Shared Preferences对象:

  • 使用getSharedPreferences()方法获取Shared Preferences对象,可以指定名称和访问模式
  • 示例代码:
SharedPreferences sharedPref = getSharedPreferences("my_prefs", Context.MODE_PRIVATE);

 2.保存数据:

  • 使用SharedPreferences.Editor对象来写入数据,通过putXXX()方法设置键值对。
  • 调用apply()方法提交保存的数据。
  • 示例代码:
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString("key", value);
editor.apply();

3.读取数据:

  • 使用Shared Preferences对象的getXXX()方法读取数据,可以指定默认值。
  • 示例代码:
String value = sharedPref.getString("key", defaultValue);

II. 文件系统存储

Android提供了文件系统存储来保存应用程序的数据。

1.写入文件:

  • 使用Java的文件操作类(如File、FileInputStream和FileOutputStream)来创建文件和写入数据。
  • 示例代码:
String data = "Hello, Android!";
FileOutputStream outputStream;
try {
    outputStream = openFileOutput("file.txt", Context.MODE_PRIVATE);
    outputStream.write(data.getBytes());
    outputStream.close();
} catch (IOException e) {
    e.printStackTrace();
}

2.读取文件:

  • 使用文件输入流(FileInputStream)和相关类来读取文件内容。
  • 示例代码:
FileInputStream inputStream;
try {
    inputStream = openFileInput("file.txt");
    InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
    BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
    String line;
    StringBuilder stringBuilder = new StringBuilder();
    while ((line = bufferedReader.readLine()) != null) {
        stringBuilder.append(line);
    }
    inputStream.close();
    String fileContents = stringBuilder.toString();
} catch (IOException e) {
    e.printStackTrace();
}

III. SQLite数据库

SQLite是Android内置的关系型数据库引擎,可以在应用程序中创建和管理数据库。

1.创建数据库:

  • 创建一个继承自SQLiteOpenHelper的类,并重写onCreate()方法,在其中执行创建表的SQL语句。
  • 示例代码:
public class MyDatabaseHelper extends SQLiteOpenHelper {
    private static final String DATABASE_NAME = "my_database.db";
    private static final int DATABASE_VERSION = 1;

    public MyDatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String createTableQuery = "CREATE TABLE my_table (id INTEGER PRIMARY KEY, name TEXT)";
        db.execSQL(createTableQuery);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // 处理数据库版本升级
    }
}

2.插入数据:

  • 获取SQLiteDatabase对象,通过ContentValues对象设置要插入的数据。
  • 使用insert()方法将数据插入到数据库中。
  • 示例代码:
MyDatabaseHelper dbHelper = new MyDatabaseHelper(context);
SQLiteDatabase db = dbHelper.getWritableDatabase();

ContentValues values = new ContentValues();
values.put("name", "John Doe");
long newRowId = db.insert("my_table", null, values);

3.查询数据:

  • 使用query()方法查询数据库中的数据。
  • 示例代码:
Cursor cursor = db.query("my_table", null, null, null, null, null, null);
if (cursor.moveToFirst()) {
    do {
        String name = cursor.getString(cursor.getColumnIndex("name"));
        // 处理数据
    } while (cursor.moveToNext());
}
cursor.close();

4.更新数据:

  • 使用update()方法更新数据库中的数据。
  • 示例代码:
ContentValues updatedValues = new ContentValues();
updatedValues.put("name", "Jane Smith");
String selection = "id=?";
String[] selectionArgs = {"1"};
int rowsAffected = db.update("my_table", updatedValues, selection, selectionArgs);

5.删除数据:

  • 使用delete()方法从数据库中删除数据。
  • 示例代码:
String selection = "id=?";
String[] selectionArgs = {"1"};
int rowsDeleted = db.delete("my_table", selection, selectionArgs);

Ⅳ.总结

  • Android中的存储分为内部存储和外部存储,内部存储是应用私有的,外部存储需要权限才能访问。
  • 内部存储可以通过Context的方法获取应用私有目录,使用FileOutputStreamFileInputStream进行读写操作。
  • 外部存储可以通过Environment.getExternalStorageDirectory()获取,使用File类进行文件操作。
  • 数据库操作使用SQLite数据库,可以通过SQLiteOpenHelper创建和管理数据库,使用SQLiteDatabase执行操作。
  • 使用Cursor类遍历查询结果。
  • Content Provider是一种跨应用共享数据的机制,可以让应用暴露自己的数据给其他应用访问,使用ContentResolver访问其他应用的Content Provider提供的数据。
  • Room Persistence Library是建立在SQLite之上的对象映射库,简化了数据库操作,使用注解定义实体类和数据访问对象。

这些知识点涵盖了Android存储和数据库的基本概念和操作方式。进一步学习和实践可以加深对这些概念的理解和运用能力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值