3.3 GreenDAO 使用心得
来源:互联网 发布:软件压力测试报告 编辑:程序博客网 时间:2024/05/29 12:22
1: 在没有使用greendDAO,之前,我们在创建数据库的OpenHelper里面写的数据,例如创建表的时候,
的时候需要
private static final String CREATE_TEACHER="create table teacher(id integer primary key autoincrement,name text not null)";
private static final String CREATE_STUDENT="create table students (id integer primary key autoincrement,name text not null,age integer default 18)";
private static final String UPGRADE_TEACHERS_V4="alter table teacher add column email text";
输入上面的数据库的命令,而如果这个数据库里面的行很多的话,可能就很麻烦了.
2: 使用了greenDAO ,记住DAO意思就是Data access object,我们可以把表中每一个column都弄成一个java 对象的属性,在创建表的时候使用这个java对象就好了
而插入的时候直接插入一个这个java 类的对象就行了。非常方便。
3:关于Generator,这个generator 就是用来产生上面的java 对象的。
4:而DaoMaster, DaoSession, 都是用来操作这个java的。
简单的一句话:greenDAO 是一个将对象映射到 SQLite 数据库中的轻量且快速的 ORM 解决方案。(greenDAO is a light & fast ORM solution that maps objects to SQLite databases.)
DaoMaster:一看名字就知道它是Dao中的最大的官了。它保存了sqlitedatebase对象以及操作DAO classes(注意:不是对象)。其提供了一些创建和删除table的静态方法,其内部类OpenHelper和DevOpenHelper实现了SQLiteOpenHelper并创建数据库的框架。
DaoSession:会话层。操作具体的DAO对象(注意:是对象),比如各种getter方法。
XXXDao:实际生成的某某DAO类,通常对应具体的java类,比如NoteDao等。其有更多的权限和方法来操作数据库元素。
XXXEntity:持久的实体对象。通常代表了一个数据库row的标准java properties。
Schema schema = new Schema(1,"hellow.worldl");
Entity note = schema.addEntity("note");
note.addIdProperty();
note.addStirngProperty("text").notNull();
note.addStirngProperty("comment");
note.addDateProperty();
new DaoGeneratory().generatorAll(schema,".");
3个数据库的操作:
1:查询
2:添加
3:删除
private void setupDatebase() {
DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this,"notes-db",null);
db = helper.getWritableDatabase();
daoMaster = new DaoMaster(db);
daoSession = daoMaster.newSession();
}
DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this,"notes-db",null);
db = helper.getWritableDatabase();
daoMaster = new DaoMaster(db);
daoSession = daoMaster.newSession();
String orderBy = NoteDao.Properties.Text.columnName+" COLLATE LOCALIZED ASC";
Cursor cursor = db.query(getNoteDao.getTableName(),getNoteDao.getAllColumns,null,null,null,null,orderBy);
String[] from ={NoteDao.Properties.Text.columnName,NoteDao.Properties.Comment.columnName};
int[] to ={android.R.id.text1,android.R.id.text2};
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,android.R.layout.simple_list_item2,cursor,from,to);
setListAdapter(adapter);
getNoteDao().insert(note);
cursor.requery();
onListItemClick(){
getNoteDao().deleteByKey(id);
cursor.requery();
}
getNoteDao().insert(note);
cursor.requery();
onListItemClick(){
getNoteDao.deleteByKey(id);
cursor.requery();
}
getNoteDao.insert(note);
cursor.requery();
onListItemClick(){
getNoteDao.deleteByKey(id);
cursor.requery();
}
的时候需要
private static final String CREATE_TEACHER="create table teacher(id integer primary key autoincrement,name text not null)";
private static final String CREATE_STUDENT="create table students (id integer primary key autoincrement,name text not null,age integer default 18)";
private static final String UPGRADE_TEACHERS_V4="alter table teacher add column email text";
输入上面的数据库的命令,而如果这个数据库里面的行很多的话,可能就很麻烦了.
2: 使用了greenDAO ,记住DAO意思就是Data access object,我们可以把表中每一个column都弄成一个java 对象的属性,在创建表的时候使用这个java对象就好了
而插入的时候直接插入一个这个java 类的对象就行了。非常方便。
3:关于Generator,这个generator 就是用来产生上面的java 对象的。
4:而DaoMaster, DaoSession, 都是用来操作这个java的。
简单的一句话:greenDAO 是一个将对象映射到 SQLite 数据库中的轻量且快速的 ORM 解决方案。(greenDAO is a light & fast ORM solution that maps objects to SQLite databases.)
DaoMaster:一看名字就知道它是Dao中的最大的官了。它保存了sqlitedatebase对象以及操作DAO classes(注意:不是对象)。其提供了一些创建和删除table的静态方法,其内部类OpenHelper和DevOpenHelper实现了SQLiteOpenHelper并创建数据库的框架。
DaoSession:会话层。操作具体的DAO对象(注意:是对象),比如各种getter方法。
XXXDao:实际生成的某某DAO类,通常对应具体的java类,比如NoteDao等。其有更多的权限和方法来操作数据库元素。
XXXEntity:持久的实体对象。通常代表了一个数据库row的标准java properties。
Schema schema = new Schema(1,"hellow.worldl");
Entity note = schema.addEntity("note");
note.addIdProperty();
note.addStirngProperty("text").notNull();
note.addStirngProperty("comment");
note.addDateProperty();
new DaoGeneratory().generatorAll(schema,".");
3个数据库的操作:
1:查询
2:添加
3:删除
private void setupDatebase() {
DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this,"notes-db",null);
db = helper.getWritableDatabase();
daoMaster = new DaoMaster(db);
daoSession = daoMaster.newSession();
}
DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this,"notes-db",null);
db = helper.getWritableDatabase();
daoMaster = new DaoMaster(db);
daoSession = daoMaster.newSession();
String orderBy = NoteDao.Properties.Text.columnName+" COLLATE LOCALIZED ASC";
Cursor cursor = db.query(getNoteDao.getTableName(),getNoteDao.getAllColumns,null,null,null,null,orderBy);
String[] from ={NoteDao.Properties.Text.columnName,NoteDao.Properties.Comment.columnName};
int[] to ={android.R.id.text1,android.R.id.text2};
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,android.R.layout.simple_list_item2,cursor,from,to);
setListAdapter(adapter);
getNoteDao().insert(note);
cursor.requery();
onListItemClick(){
getNoteDao().deleteByKey(id);
cursor.requery();
}
getNoteDao().insert(note);
cursor.requery();
onListItemClick(){
getNoteDao.deleteByKey(id);
cursor.requery();
}
getNoteDao.insert(note);
cursor.requery();
onListItemClick(){
getNoteDao.deleteByKey(id);
cursor.requery();
}
0 0
- 3.3 GreenDAO 使用心得
- greenDao框架使用心得
- GreenDao的使用心得
- greenDAO 使用心得
- GreenDao使用心得
- GreenDao 3.1使用心得
- GreenDao的使用心得和分享
- 关于第三方开源库GreenDao的使用心得
- 关于第三方开源库GreenDao的使用心得
- ORM 框架之 greenDAO 使用心得
- Android ORM 框架之 greenDAO 使用心得
- Android ORM 框架之 greenDAO 使用心得
- Android ORM 框架之 greenDAO 使用心得
- Android ORM 框架之 greenDAO 使用心得
- Android ORM 框架之 greenDAO 使用心得
- Android ORM 框架之 greenDAO 使用心得
- Android ORM 框架之 greenDAO 使用心得
- ORM 框架之 greenDAO 使用心得
- swiftw之字符串拆分
- selector中的state误区
- 异步机制
- queue队列
- getpid
- 3.3 GreenDAO 使用心得
- 分享自己写的一个简化版LOG输出宏
- 【UVa】536 – Tree Recovery
- 二叉树三种遍历算法递归和非递归实现
- VAST Challenge 2015 Mini-Challenge 2
- 【UVa】10763 – Foreign Exchange
- C++11以前的序列点
- Java数据结构----树--红黑树
- oracle 11g归档日志研究_1