안 드 로 이 드 에 서 는 포 장 된 데이터베이스 작업 도구 류 를 포함 하여 GreenDAO 데이터베이스 프레임 워 크 를 도입 합 니 다.

11050 단어 안 드 로 이 드
1. 프로젝트 설정
. / src / main 디 렉 터 리 아래 자바 와 같은 등급 의 자바 - gen 폴 더 를 만 듭 니 다.
2. build. gradle 에 설정
//buildTypes{}   
sourceSets {
    main {
        java.srcDirs = ['src/main/java', 'src/main/java-gen']
    }
}
3. 의존 도 추가
dependencies {
    compile 'de.greenrobot:greendao:1.3.7'
}
4. 간단 한 조작 을 위해 JAVA 프로젝트 greendao 를 직접 도입 할 수 있 습 니 다. 안 드 로 이 드 프로젝트 에 의존 도 를 직접 추가 하고 greendao 의 자바 프로젝트 를 첨부 합 니 다.
자원 링크 http://download.csdn.net/detail/qq_23363425/9618837
   편 의 를 위해 코드 를 붙 입 니 다: 비고 (자바 프로젝트 에 의존 컴 파일 ('de. green robot: DaoGenerator: 1.3.0') 을 추가 해 야 합 니 다.

import de.greenrobot.daogenerator.DaoGenerator;
import de.greenrobot.daogenerator.Entity;
import de.greenrobot.daogenerator.Schema;


public class MyDaoGenerator {


    public static void main(String args[]) throws Exception {
        Schema schema = new Schema(5, "com.aaa.bean");
        // 1:       
        // com.xxx.bean:     Bean     /java-gen/com/xxx/bean 


        schema.setDefaultJavaPackageDao("com.aaa.dao");
        // DaoMaster.java、DaoSession.java、BeanDao.java   /java-gen/com/xxx/dao 


        //                 ,      


        initTable(schema); //    Bean 


        new DaoGenerator().generateAll(schema, "D:\\Dao\\app\\src\\main\\java-gen");//     
    }


    private static void initTable(Schema schema) {
        Entity table = schema.addEntity("ContentEntity");//   
       // table.setTableName("table"); //        
       //table.addLongProperty("id").primaryKey().index().autoincrement();
        table.addIdProperty().autoincrement();//   ,  


        table.addStringProperty("status");
        table.addLongProperty("version");
        table.addStringProperty("tableTypeId");
        table.addStringProperty("storeId");
        table.addStringProperty("name");
        table.addStringProperty("orderby");
    }
}
5.       ,            ,             ,  ! 
   
  

6、 db

BaseApplication 
 
  
package com.wp.dao.daohelp;

import android.app.Application;
import android.content.Context;

import com.aaa.dao.DaoMaster;
import com.aaa.dao.DaoSession;

/**
 * Created by wp on 2016/8/12.
 */

public class BaseApplication extends Application {
    public static BaseApplication mInstance;
    public static DaoMaster daoMaster;
    public static DaoSession daoSession;


    @Override


    public void onCreate() {
        super.onCreate();
        if (mInstance == null)
            mInstance = this;
    }

/**
     *   DaoMaster
     *
     * @param context    
     * @return DaoMaster
     */


    public static DaoMaster getDaoMaster(Context context) {
        if (daoMaster == null) {
            // DaoMaster.OpenHelper helper = new DaoMaster.DevOpenHelper(context,"myDb",null);
            DaoMaster.OpenHelper helper = new TableOpenHelper(context, "myDb", null);
            daoMaster = new DaoMaster(helper.getWritableDatabase());
        }
        return daoMaster;
    }

/**
     *   DaoSession
     *
     * @param context    
     * @return DaoSession
     */


    public static DaoSession getDaoSession(Context context) {
        if (daoSession == null) {
            if (daoMaster == null) {
                daoMaster = getDaoMaster(context);
            }
            daoSession = daoMaster.newSession();
        }
        return daoSession;
    }
}
TableOpenHelper   
package com.wp.dao.daohelp;/*
package com.wp.dao.daohelp;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;

import com.aaa.dao.DaoMaster;
import com.aaa.dao.TableDao;

*/

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;

import com.aaa.dao.ContentEntityDao;
import com.aaa.dao.DaoMaster;

/**
 * Created by wp on 2016/8/12.
 */

public class TableOpenHelper extends DaoMaster.OpenHelper {


    public TableOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory) {
        super(context, name, factory);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        switch (oldVersion) {
            case 1:
                //    ,  createTable()     
                ContentEntityDao.createTable(db, true);

                //      
                //db.execSQL("ALTER TABLE 'moments' ADD 'audio_path' TEXT;");

                // TODO
                break;
        }
    }
}
DbService        
package com.wp.dao.daohelp;

import android.content.Context;
import android.text.TextUtils;
import android.util.Log;

import com.aaa.bean.AllData;
import com.aaa.bean.ContentEntity;
import com.aaa.dao.ContentEntityDao;
import com.aaa.dao.DaoSession;

import java.util.List;

import de.greenrobot.dao.query.QueryBuilder;
import de.greenrobot.dao.query.WhereCondition;

/**
 * Created by wp on 2016/8/15.
 */

public class DbService {
    private static final String TAG = DbService.class.getSimpleName();
    private static DbService instance;
    private static Context appContext;
    private DaoSession mDaoSession;
    private ContentEntityDao contentEntityDao;


    private DbService() {
    }

    /**
     *       
     *
     * @param context    
     * @return dbservice
     */
    public static DbService getInstance(Context context) {
        if (instance == null) {
            instance = new DbService();
            if (appContext == null) {
                appContext = context.getApplicationContext();
            }
            instance.mDaoSession = BaseApplication.getDaoSession(context);
            instance.contentEntityDao = instance.mDaoSession.getContentEntityDao();
        }
        return instance;
    }

    /**
     *     id,      
     *
     * @param id   id
     * @return     
     */
    public ContentEntity loadNote(Long id) {
        if (!TextUtils.isEmpty(id + "")) {
            return contentEntityDao.load(id);
        }
        return null;
    }


    /**
     *       
     *
     * @return       
     */
    public List loadAllNote() {
        return contentEntityDao.loadAll();
    }

    /**
     *    id      
     *
     * @return     
     */
    public List loadAllNoteByOrder() {
        return contentEntityDao.queryBuilder().orderDesc(ContentEntityDao.Properties.Id).list();
    }

    /**
     *       ,      
     *
     * @param where    
     * @param params   
     * @return     
     */
    public List queryNote(String where, String... params) {
        return contentEntityDao.queryRaw(where, params);
    }


    /**
     *       ,       
     *
     * @param user     
     * @return         id
     */
    public long saveorReplace(ContentEntity user) {
        return contentEntityDao.insertOrReplace(user);
    }

    public long saveNote(ContentEntity user) {
        return contentEntityDao.insert(user);
    }


    /**
     *            
     *
     * @param list       
     */
    public void saveNoteLists(final List list) {
        if (list == null || list.isEmpty()) {
            return;
        }
        contentEntityDao.getSession().runInTx(new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i < list.size(); i++) {
                    ContentEntity user = list.get(i);
                    //if (!instance.loadAllNote().equals(user.)){
                    contentEntityDao.insertOrReplace(user);
                    // }
                }
            }
        });

    }


    /**
     *       
     */
    public void deleteAllNote() {
        contentEntityDao.deleteAll();
    }

    /**
     *   id,    
     *
     * @param id   id
     */
    public void deleteNote(long id) {
        contentEntityDao.deleteByKey(id);
        Log.i(TAG, "delete");
    }

    /**
     *      ,    
     *
     * @param user      
     */
    public void deleteNote(ContentEntity user) {
        contentEntityDao.delete(user);
    }


    public List queryPerson(WhereCondition arg0, WhereCondition... conditions) {
        QueryBuilder qb = contentEntityDao.queryBuilder();
        qb.where(arg0, conditions);
        List personList = qb.list();
        return personList;
    }

    /**
     *                    
     *
     * @param newList
     * @return
     */
    public void checkPersonExistAndUpdate(List newList) {
        List oldList = instance.loadAllNote();//           
        System.out.println(oldList.size() + "-------------       ");


        if (oldList.size() > 0) {
            for (int i = 0; i < oldList.size(); i++) {
                for (int j = 0; j < newList.size(); j++) {
                    if (oldList.get(i).getTableTypeId().equals(newList.get(j).getTableTypeId())) {//           tabletypeID
                        //  status
                        if (Integer.parseInt(newList.get(j).getStatus()) == 2) {//           2,         
                            instance.deleteNote(oldList.get(i));
                        } else {//           1,      
                            return;
                        }
                    } else {
                        if (Integer.parseInt(newList.get(j).getStatus()) == 2) {//           2,         
                            return;
                        } else {//           1,      
                            //return;
                            instance.deleteNote(oldList.get(i));
                        }
                        //          tabletypeid,        
                        // instance.saveNote(newList.get(j));

                    }
                }
            }

        } else {
            //         ,               
            for (int j = 0; j < newList.size(); j++) {
                if (Integer.parseInt(newList.get(j).getStatus()) == 2) {
                    newList.remove(newList.get(j));
                }

            }

            instance.saveNoteLists(newList);
            System.out.println("                  " + oldList.size());

        }

    }
}

http://download.csdn.net/download/qq_23363425 / 9618892 전체 프로젝트 주 소 는 여기에 있 습 니 다. 부정 확 한 점 이 있 으 면 지적 해 주 십시오.

좋은 웹페이지 즐겨찾기