zoukankan      html  css  js  c++  java
  • 开源框架GreenDao的操作

    1.为什么需要GreenDao?Google原生API不方便

    @1手动组拼SQL语句

    @2需要自己写操作数据库代码

    @3不能把数据库中的数据映射成对象

    @4没有实现关联查询

    2.GreenDao是什么?

    开源的数据库操作框架,让操作数据库变为操作对象

    3.GreenDao的优点?

    @1让业务代码访问对象,而不是操作数据库表

    @2隐藏了面向对象的逻辑SQL查询详情

    @3无须处理数据库实现

    4.ANDROID主流ORM框架

    @1 OrmLite

    @2 SugarORM

    @3 LitePal

    @4 GreenDao

    .

    5.GreenDao自动生成代码

    @1创建java工程,引入两个jar包

    @2创建类,引入代码如下

    import java.io.IOException;
    
    import de.greenrobot.daogenerator.DaoGenerator;
    import de.greenrobot.daogenerator.Entity;
    import de.greenrobot.daogenerator.Schema;
    
    public class GenerateGreenDao {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            
    
            Schema schema = new Schema(1, "de.greenrobot.daoexample");//第一个参数:版本号,第二个参数生成的代码的包名
             
            Entity note= schema.addEntity("Person");//生成的表名
            note.addIdProperty();//增加id字段
            note.addStringProperty("name").notNull();//增加name字段
            note.addIntProperty("age");//增加age字段
            note.addStringProperty("sex");//sex字段
            note.addDateProperty("date");//date字段
             
            try {
                new DaoGenerator().generateAll(schema, "../greendaogenerate/src");
                
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    
        }
    
    }

    @3编译并运行上述代码,查看结果,生成四个类,以后需要将这四个类拷贝到android工程中

     6.使用GreenDao的API

    @1初始化数据库

        private void openDB() {
        // do this once, for example in your Application class
            DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(MainActivity.this, "person.db", null);
            db = helper.getWritableDatabase();
            daoMaster = new DaoMaster(db);
            daoSession = daoMaster.newSession();
        // do this in your activities/fragments to get hold of a DAO
            dao = daoSession.getPersonDao();
        }

    @2增加

       //增加
        public void save(){
            //要插入的对象
            Person person = new Person(Long.valueOf(1),name.getText().toString(),Integer.valueOf(age.getText().toString()),"women",new Date());
            //执行插入
            dao.insert(person);
            //清空输入框
            name.setText("");
            age.setText("");
            Log.i("person","personid"+person.getId());
        }

    @3修改

        public void update(Person p){
            dao.insertOrReplace(p);
        }

    @4删除

        public void delete(Person p){
            dao.delete(p);
        }

    @5查询

        //查询所有
        public void getAll(){
            List<Person> list = dao.queryBuilder().list();
            for(Person p:list){
                Log.v("Person",p.toString());
            }
            Person person = list.get(0);
            person.setSex("man");
            update(person);
    
        }
    需要程序源码的可以加我微信x241602私聊。
  • 相关阅读:
    MySQL · 引擎特性 · InnoDB崩溃恢复
    MySQL · 引擎特性 · InnoDB Buffer Pool
    MySQL · 引擎特性 · InnoDB IO子系统
    MySQL · 引擎特性 · InnoDB 同步机制
    docker基本操作命令
    IIS日志导出mysql
    Win10 MySQL Community Server 8.0.17安装
    win10 TortoiseGit 图标不显示
    window环境配置nginx
    windows openssh安装
  • 原文地址:https://www.cnblogs.com/huipengbo/p/7083057.html
Copyright © 2011-2022 走看看