Android-Room框架

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框架应用步骤:

  1. 定义第一个实体类:对应表结构。
  2. 定义第一个Dao接口:封装了对表的全部操作。
  3. 定义数据库类:可以获取Dao类的对象。
  4. 定义线程池类:防止阻塞主线程
  5. 定义其它的实体类和对应的Dao类
  6. 修改数据库类,使得数据库类可以获取其它Dao类
  7. 操作数据库:在线程中使用数据库类获取Dao对象,调用Dao对象的方法完成对数据库的增删改查等操作。

RecyclerView

recyclerview创建步骤:

  1. 创建展示一条数据的布局文件
  2. 创建ViewHolder类:把一条数据与布局文件中的展示组件对应起来
  3. 创建适配器类:包装数据集合并且为每个条目创建视图
  4. 创建ViewModel类:代表要展示的数据集(可以通过其属性或方法可以获取到需要展示的数据,比如从数据中获取)
  5. 在Activity的布局文件中加入RecyclerView组件
  6. 在Activity类中创建并显示RecyclerView

ViewHolder类也可以定义为适配器类的内部类;

LayoutManager类用于指定数据排列的方式,如:九宫格、瀑布流,自定义;

ItemDecoration类在每条数据的视图的周围或上面绘制一些装饰视图;

ItemAnimator类定义组件在修改、添加和删除时的动画效果;

RecyclerView本身不参与任何视图相关的问题,只负责回收和重用的工作。

RecyclerView使用详解 各种布局

你可能感兴趣的:(Android开发,android,sqlite,数据库)