代码生成
使用freemaker 生成BeanDao 对象, DaoMaster, DaoSession.
数据库操作
通过Bean 的操作更新数据库, 把bean 的字段转拼成 sql语句 原生的数据库对象SQLiteDatabase,SQLiteOpenHelper,SQLiteStatement
- 定义TableStatements 通过静态代理 StandardDatabaseStatement(不加密), EncrytedDatabaseStatement(加密) 的方式来操作SQLiteStatment
- StandardDatabase, EncrytedDatabase 来操作 SQLiteDatabase.
优化:
- 在StandardDatabaseStatement 中 缓存 Statement 优化
- IdentityScope 在内存中缓存数据,当然是Hashmap<K,Referer> 弱引用
- 执行sql操作时,先判断是不是被当前线程锁定,如果没锁定,再开启事务