SQLite数据库
SQLite是一个轻量级数据库,占用资源非常低,在内存中只需要占用几百KB的存储空间
SQLite是遵守ACID的关系型数据库管理系统,ACID是指数据库事务正确执行的四个基本要 素(原子性、隔离性、一致性、持久性)。
SQLite保存数据时,支持NULL(零)、INTEGER(整数)、REAL(浮点数字)、TEXT (字符串文本)和BLOB(二进制对象)五种数据类型。
//创建数据库
public class MyHelper extends SQLiteOpenHelper {
public MyHelper(Context context) {
super(context, "itcast.db", null, 2);
}
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE information(_id INTEGER PRIMARY
KEY AUTOINCREMENT, name VARCHAR(20), price INTEGER)");
}
// 当数据库的版本号增加时调用
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){
}
}
//添加数据
public void insert(String name,String price) {
SQLiteDatabase db = helper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", name);
values.put("price", price);
long id = db.insert("information",null,values);
db.close();
}
//修改数据
public int update(String name, String price) {
SQLiteDatabase db = helper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("price", price);
int number = db.update("information", values, " name = ? ", new String[]{name});
db.close();
return number;
}
//删除数据
public int delete(long id){
SQLiteDatabase db = helper.getWritableDatabase();
int number = db.delete("information", "_id=?", new String[]{id+""});
db.close();
return number;
}
//查询数据
public boolean find(long id){
SQLiteDatabase db = helper.getReadableDatabase();
Cursor cursor = db.query("information", null, "_id=?", new
String[]{id+""}, null, null, null);
boolean result = cursor.moveToNext();
cursor.close();
db.close();
return result;
}
//SQLite的事务
PersonSQLiteOpenHelper helper = new PersonSQLiteOpenHelper(getContext());
SQLiteDatabase db = helper.getWritableDatabase();
db.beginTransaction();
try {
db.execSQL("update person set account=account-1000 where name =?",new Object[] { "shab" });
db.execSQL("update person set account=account+1000 where name =?",new Object[] { "nium" });
db.setTransactionSuccessful();
}catch (Exception e) {
Log.i("事务处理失败", e.toString());
} finally {
db.endTransaction();
db.close();
}
Room框架
Room:SQLite抽象层,访问数据库更加稳健,提升性能。
Database类:获取Dao类
Dao类:操作某个表(接口)
Entities类:代表某个表的结构(实体类)
Android Room 官方指南
使用 Room 将数据保存到本地数据库
Romm框架应用步骤:
RecyclerView
recyclerview创建步骤:
ViewHolder类也可以定义为适配器类的内部类;
LayoutManager类用于指定数据排列的方式,如:九宫格、瀑布流,自定义;
ItemDecoration类在每条数据的视图的周围或上面绘制一些装饰视图;
ItemAnimator类定义组件在修改、添加和删除时的动画效果;
RecyclerView本身不参与任何视图相关的问题,只负责回收和重用的工作。
RecyclerView使用详解 各种布局