/** * @description: * @author chenshiqiang E-mail:csqwyyx@163.com * @date 2014年5月1日 下午3:54:23 * @version 1.0 */ package com.csq.thesceneryalong.io.db; import android.database.sqlite.SQLiteDatabase; import com.csq.thesceneryalong.config.Configer; import com.csq.thesceneryalong.db.DaoMaster; import com.csq.thesceneryalong.db.DaoSession; import com.csq.thesceneryalong.db.SceneryDao; import com.csq.thesceneryalong.db.TrackDao; import com.csq.thesceneryalong.db.TrackPointDao; import de.greenrobot.dao.query.QueryBuilder; public class DbManager { // ------------------------ Constants ------------------------ // ------------------------- Fields -------------------------- private static volatile DbManager instance; public static DbManager getInstance(){ if(instance == null){ synchronized (DbManager.class) { instance = new DbManager(); } } return instance; } private SQLiteDatabase db; private DaoMaster daoMaster; private DaoSession daoSession; // ----------------------- Constructors ---------------------- private DbManager(){ } // -------- Methods for/from SuperClass/Interfaces ----------- // --------------------- Methods public ---------------------- public boolean dbInited = false; public synchronized void init(){ MyOpenHelper helper = new MyOpenHelper(); db = helper.getWritableDatabase(); daoMaster = new DaoMaster(db); daoSession = daoMaster.newSession(); if(getTrackDao() != null){ dbInited = true; } if(Configer.isDebugMode){ QueryBuilder.LOG_SQL = true; QueryBuilder.LOG_VALUES = true; } } public TrackDao getTrackDao(){ return daoSession.getTrackDao(); } public SceneryDao getSceneryDao(){ return daoSession.getSceneryDao(); } public TrackPointDao getTrackPointDao(){ return daoSession.getTrackPointDao(); } // --------------------- Methods private --------------------- // --------------------- Getter & Setter --------------------- public SQLiteDatabase getDb() { return db; } public DaoMaster getDaoMaster() { return daoMaster; } // --------------- Inner and Anonymous Classes --------------- }