Android 에서 GreenDAO 프레임 워 크 를 처음 사용 하여 데이터 베 이 스 를 조작 합 니 다.
사실은 작은 정리 입 니 다. 자, 본론 으로 들 어가 세 요.오늘 은 그린 다 오 를 배 워 보 았 습 니 다. 솔직히 두 글자: 편리 합 니 다.건축 표 에 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());
}
}
}
이제 다 오 마 스 터 만 날 뻔 했 어 -!만약 여러분 이 원래 의 블 로 그 를 보고 실천 한 후에 몇 가지 문제 에 부 딪 히 면 제 블 로 그 를 볼 수 있 습 니 다. 만약 문제 가 없다 면 이 글 은 바로 무시 할 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
nginx websocket ip_해시 규칙프로젝트 를 다운로드 한 후 서로 다른 네트워크 에 각각 이 demo 프로젝트 를 배치 합 니 다. 프로젝트 에서 환경 변수 에 따라 시스템 변 수 를 설정 합 니 다. spring.profiles.active=de...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.