zoukankan      html  css  js  c++  java
  • Android greenDao的简单配置和使用

          最近自学做东西的时候用到了一个收藏的功能,然后我想把东西存放到SQLite当中,然而自己传值的时候都是用到的实体类,所以存起来也比较麻烦,所以从网上找到一个greenDao的开源框架非常火,不仅效率高,而且内存也占用的小,非常方便。

          这里我就简单介绍一下如何配置,至于其他的增、删、改、查了,网上都很多,需要用到的小伙伴们自己去查吧!!

          首先我们得明白,greenDao是一个Java代码模版的快速生成器,里面封装好了我们实体类的各种操作。所以

          1、我们要用eclipse或者Myeclipse建一个Java工程,我们需要在我们的工程下建立一个lib目录用于放我们的两个包(没有的小伙伴可以去网上下载)

          

       2、右键我们的工程,在弹出的菜单中选择Properties,将我们的两个jar包 加入到我们的工程中

      

       3、操作完成后,我们就可以编写代码了,建立一个类,在里面写下如下代码

         

    package com.fanlei.greenDao;
    import java.io.IOException;
    
    import de.greenrobot.daogenerator.DaoGenerator;
    import de.greenrobot.daogenerator.Entity;
    import de.greenrobot.daogenerator.Schema;
    
    public class ExampleDaoGenerator {
    
        public static void main(String[] args) throws IOException, Exception {
            
            Schema schema = new Schema(1, "de.greenrobot.daoexample");  
              
            addNote(schema);  
      
            new DaoGenerator().generateAll(schema, "E:\DaoExample\src-gen");
            
        }
        
        private static void addNote(Schema schema) {  
            
            Entity news = schema.addEntity("News");
            news.addStringProperty("author");
            news.addStringProperty("content");
            news.addStringProperty("id");
            news.addStringProperty("img");
            news.addStringProperty("pagetag");
            news.addStringProperty("time");
            news.addStringProperty("title");
        }  
    }

     首先

        Schema schema = new Schema(1, "de.greenrobot.daoexample");  是必须要有的,这个视需要建立实体类要用到的,

       两个参数   第一个是一个 版本,也就是说我们的SQLite数据库版本,后期如果需要数据库升级,就需要这个参数.

                     第二个是一个 路径,也就是你运行完这段代码后,生成的 .java 文件放在的地方.

       方法addNote() 是添加实体类用的,你希望生成的实体类里面都有什么属性,这个需要自己去加入,属性的类型也很全面

                    Entity news = schema.addEntity("News");  

      会生成一个 News.java文件和NewsDao.java文件,NewsDao.java文件里面封装好了对数据库的操作

                    new DaoGenerator().generateAll(schema, "E:\DaoExample\src-gen");

      第二个参数是你希望生成的文件存放在哪里.这个路径需要使用者事先去建好,否则会报异常.

      最后生成的文件除了两个必要的.java文件,还有就是 你的实体类和实体类的Dao.

      

      4、最好将这几个.java文件考到你的android工程里面就可以使用了,android里面也需要一个jar包去支持,别忘了导入进去。(没有得网上可以下载)

    5、为了防止我们总是去创建session,官方推荐我们将session的生成放到application中,然后我们可以用get方法去获得

     1 public class MyApplication extends Application {
     2 
     3     private DaoMaster.DevOpenHelper helper;
     4     private SQLiteDatabase db;
     5     private DaoMaster daoMaster;
     6     private DaoSession daoSession;
     7 
     8     @Override
     9     public void onCreate() {
    10 
    11 
    12         helper = new DaoMaster.DevOpenHelper(this,"News_info-db",null);
    13         db = helper.getWritableDatabase();
    14         daoMaster = new DaoMaster(db);
    15         daoSession = daoMaster.newSession();
    16  }
    17 }

        6、插入操作也很简单

          

    private News news;
        private NewsDao newsDao;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_news_info);
            getSupportActionBar().hide();
    
            newsDao = MyApplication.getMyApplocation().getDaoSession().getNewsDao();  //拿到这么个工具dao
    
       newsDao.insert(news);   //插入到数据库
    
        }

     若是第一次插入,则会创建一个表 表名就是类名,字段名就是属性名,这个表就是专门放News实体类的

    7、其他操作请自行搜索,或者看官方文档

  • 相关阅读:
    bbs小项目整理(八)(总结、源码分享)
    struts2验证框架
    Struts2文件上传例子
    struts2的参数的封装形式
    struts2的获取Servlet API的几种方式的学习笔记
    struts2的相关配置信息
    java向mysql插入时间,时间日期格式化
    关于将项目导入eclipse出现小红叉的解决笔记
    bbs小项目整理(七)(消息分页展现)
    HTML引用CSS
  • 原文地址:https://www.cnblogs.com/819158327fan/p/4889619.html
Copyright © 2011-2022 走看看