Android 에서 GreenDAO 프레임 워 크 를 처음 사용 하여 데이터 베 이 스 를 조작 합 니 다.

여러분, 이것 을 보기 전에 이 분 을 먼저 보 는 것 이 좋 습 니 다. 그린 다 오 에 대한 상세 한 사용 설명 이 있 습 니 다.http://blog.csdn.net/risky78125/article/details/48738683
사실은 작은 정리 입 니 다. 자, 본론 으로 들 어가 세 요.오늘 은 그린 다 오 를 배 워 보 았 습 니 다. 솔직히 두 글자: 편리 합 니 다.건축 표 에 CRUD 조작 을 더 하면 몇 시간 만 에 프로젝트 를 바로 올 릴 수 있다.하지만 오늘 나 는 두 가지 문 제 를 만 났 다. 확실히 원 블 로 거들 에 게 속 았 다 (하하, 농담 이 야. 내 가 너무 멍청해):
초기 화 작업 에 대한 패 키 징 은 애플 리 케 이 션 에 넣 습 니 다.
나 는 먼저 4 개의 필드, id, title, comment, date 를 작성 했다.
원 블 로 거 코드 에 대한 작은 개선 은 실수 하기 쉬 운 곳 에 대한 표시 와 같다. 왜냐하면 나 는 이런 곳 에서 넘 어 졌 기 때문이다.
* @author QHT
 *
 */
public class SingleType extends Application {  

    private  static SingleType mInstance=null;  
    private  DaoMaster daoMaster;  
    private  DaoSession daoSession;  
    private NoteDao noteDao;
    /*         public,  onCreate    ,        MainActivity  getInstance     */
      public SingleType(){
      }
    @Override  
    public void onCreate() {  
        super.onCreate(); 
        //   ,oncreate Application           
        if(mInstance == null)  
            mInstance = this;  
    }  
    //           ,    
    public static SingleType getInstance(){
        //   
     if(mInstance==null){
         //   
         synchronized (SingleType.class) {
             if(mInstance==null){
                mInstance=new SingleType();
             }
        }
     }
    return mInstance;
   }
    /** *   DaoMaster * * @param context * @return */  
    public  DaoMaster getDaoMaster(Context context) {  
        if (daoMaster == null) {  
            OpenHelper helper = new DaoMaster.DevOpenHelper(context,Constants.DB_NAME, null);  
            daoMaster = new DaoMaster(helper.getWritableDatabase());  
        }  
        return daoMaster;  
    }  

    /** *   DaoSession * * @param context * @return */  
    public  DaoSession getDaoSession(Context context) {  
        if (daoSession == null) {  
            if (daoMaster == null) {  
                daoMaster = getDaoMaster(context);  
            }  
            daoSession = daoMaster.newSession();  
        }  
        return daoSession;  
    } 
    public NoteDao getnoteDao(){
        if(noteDao==null){
  /**      noteDao=daoSession.getNoteDao(); * daoSession       ,       getDaoSession(mInstance) * daoSession      getInstance     。 **/
            noteDao=getDaoSession(mInstance).getNoteDao();
        }
        return noteDao;
    }
    public class Constants {
       public static final String DB_NAME = "note_db";  
 }
}  

 Activity
---------------

public class MainActivity extends ActionBarActivity {

    private SQLiteDatabase db;
    private DaoMaster daoMaster;
    private DaoSession daoSession;
    private TextView tv;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
       dodao();  
    }
    private void initView() {
        // TODO Auto-generated method stub
         tv=(TextView)findViewById(R.id.tv);
    }
    //     
    private void dodao() {
        // TODO Auto-generated method stub
        //   daoSession     dao   !!!    !!!
        NoteDao dao = SingleType.getInstance().getnoteDao();
        List<Note> daoslist=new ArrayList<Note>();
        for(int i=0;i<=10;i++){
            Note note=new Note((long)i,"   "+i,"666", "2016-03-31");
            daoslist.add(note);
            Log.d("tag",daoslist.get(i).getTitle()+daoslist.get(i).getDate());
        }
        dao.insertInTx(daoslist);   
        dao.deleteByKey(2l);
        dao.update(new Note(4l, "   ", "", "2016-04-01"));
        List<Note> querylist=dao.queryBuilder().list();
        for(Note note:querylist){
            tv.setText(note.getTitle());    
        }
    }
}

이제 다 오 마 스 터 만 날 뻔 했 어 -!만약 여러분 이 원래 의 블 로 그 를 보고 실천 한 후에 몇 가지 문제 에 부 딪 히 면 제 블 로 그 를 볼 수 있 습 니 다. 만약 문제 가 없다 면 이 글 은 바로 무시 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기