GreenDao 3.2.0 의 기본 사용

5002 단어 GreenDao
머리말
안 드 로 이 드 개발 에서 우 리 는 많 든 적 든 데이터 베 이 스 를 접 할 수 있다.Android 에 서 는 메모리 가 아주 작은 관계 형 데이터 베 이 스 를 제공 합 니 다.-SQLite.안 드 로 이 드 시스템 에 서 는 SQLite 를 조작 하 는 API 를 많이 제공 하지만 SQL 문 구 를 수 동 으로 작성 해 야 합 니 다.이상 한 문제 가 자주 발생 합 니 다(😂,왜 냐 고 묻 지 마 세 요.그래서 많은 ORM(대상 관계 맵)프레임 워 크 가 나 타 났 다.그 중에서 비교적 유명한 것 은 GreenDao,OrmLite,Litepal 등 이 있다.다음은 그린 다 오 를 소개 하 겠 습 니 다.제 가 평소에 가장 많이 쓰 는 것 도 그린 다 오 입 니 다.
GreenDao 소개

홈 페이지 에 따 르 면 greenDAO 는 SQLite 데이터베이스 에 대상 을 비 추 는 가 볍 고 빠 른 ORM 솔 루 션 입 니 다.(greenDAO is a light & fast ORM solution that maps objects to SQLite databases.)
GreenDao 특징
  • 성능 최대 화,안 드 로 이 드 플랫폼 에서 가장 빠 른 ORM 프레임 워 크 일 수 있 습 니 다
  • 사용 하기 쉬 운 API최소 메모리 비용
    의존 부피 가 작다데이터베이스 암호 화 지원
    강력 한 지역사회 지원
    그린 다 오 가 이렇게 많은 데,우리 가 그것 을 사용 하지 않 을 이유 가 있 겠 는가.
    GreenDao 설정
    build.gradle(Module:app)에 다음 코드 를 추가 합 니 다.
    
    buildscript { 
      repositories {
        mavenCentral()
      }
      dependencies {
        classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1' 
      }
     }
     apply plugin: 'org.greenrobot.greendao'
     dependencies {
       compile 'org.greenrobot:greendao:3.2.0'
     }
    
    기타 설정
    build.gradle(Module:app)에 추가:
    
    greendao { 
      schemaVersion 1//       
      daoPackage 'com.com.sky.downloader.greendao'//  DaoMaster、DaoSession、Dao   
      targetGenDir 'src/main/java'//  DaoMaster、DaoSession、Dao   
      //targetGenDirTest:           
      //generateTests:            
    }

    위 설정 은 옵션 입 니 다.설정 하지 않 으 면 기본적으로 build 에서 생 성 됩 니 다.

    GreenDao 의 기본 설정 이 완료 되 었 습 니 다.실체 클래스 를 만 듭 니 다.
    실체 클래스 사용자
    
     @Entity
     public class User { 
      @Id(autoincrement = true) 
      private Long id; 
      private String name; 
      private int age;
    }
    관련 설명:
    실체@Entity 주석
    schema:GreenDao 의 현재 실체 가 어떤 schema 에 속 하 는 지 알려 줍 니 다.
    active:하나의 실체 가 활성 상태 에 있 음 을 표시 합 니 다.이벤트 실 체 는 업데이트,삭제,새로 고침 방법 이 있 습 니 다.
    nameIndb:데이터베이스 에 사용 되 는 별명 입 니 다.기본적으로 실체의 클래스 이름 을 사용 합 니 다.
    indexes:색인 을 정의 합 니 다.여러 열 을 뛰 어 넘 을 수 있 습 니 다.
    createInDb:데이터베이스 시트 만 들 기 태그
    기본 속성 설명
    @Id:메 인 키 Long 형,@Id(autoincrement=true)를 통 해 성장 설정 가능
    @Property:기본 관계 가 아 닌 맵 에 대응 하 는 열 이름 을 설정 합 니 다.기본 값 은 필드 이름 을 사용 합 니 다.예 를 들 어@Property(nameIndb="name")
    @NotNull:데이터베이스 테이블 을 설정 하면 현재 열 이 비어 있 을 수 없습니다
    @Transient:이 표 시 를 추가 하면 데이터베이스 시트 의 열 이 생 성 되 지 않 습 니 다.
    색인 주해
    @Index:@Index 를 하나의 속성 으로 색인 을 만 들 고 name 을 통 해 색인 별명 을 설정 하 며 유 니 크 를 통 해 색인 에 제약 을 추가 할 수 있 습 니 다.
    @Unique:데이터베이스 에 유일한 제약 조건 을 추가 하 였 습 니 다.
    관계 주해
    @ToOne:다른 실체(하나의 실체 대상)와 의 관 계 를 정의 합 니 다.
    @Tomany:여러 실체 대상 과 의 관 계 를 정의 합 니 다.
    실체 클래스 를 작성 하고 필요 한 주 해 를 추가 한 후 Make Project 나 Make Module'app'을 누 르 면 프로젝트 의 build 디 렉 터 리 나 자신 이 설정 한 디 렉 터 리 에서 생 성 된 세 가지 파일 을 볼 수 있 습 니 다.
  • DaoMaster
  • DaoSession
  • UserDao
  • 뒤의 데이터 베이스 작업 은 이 세 가지 유형 을 통 해 진행 되 어야 하 며,동시에 우리 의 실체 류 에서 각 속성의 get,set 방법 을 자동 으로 생 성 해 야 한다.

    GreenDao 초기 화
    일반적으로 애플 리 케 이 션 에서 데이터 베 이 스 를 초기 화 하 는 것 을 권장 합 니 다.

    DevOpenHelper 는 두 가지 과부하 방법 이 있 습 니 다.
  • DevOpenHelper(Context context,String name)
  • DevOpenHelper(Context context,String name,CursorFactory factory)
  • context 컨 텍스트 는 더 이상 말 할 필요 가 없습니다.name 데이터베이스 이름,cursor Factory 커서 공장 은 일반적으로 사용 하지 않 습 니 다.null 에 들 어가 거나 두 개의 인 자 를 사용 하 는 방법 을 사용 하면 됩 니 다.우 리 는 외부 에서 사용 할 수 있 도록 getDaoSession()방법 을 대외 적 으로 제공 합 니 다.
    늘다
    메모:Long 형 id,null 에 들 어 오 면 GreenDao 는 기본적으로 증가 하 는 값 을 설정 합 니 다.
    insert(User entity):기록 을 삽입 합 니 다
    삭제 하 다.
  • deleteBykey(Long key):메 인 키 에 따라 기록 을 삭제 합 니 다
  • 4.567917.delete(User entity):실체 류 에 따라 기록 을 삭제 하고 보통 조회 방법 과 결합 하여 기록 을 조회 한 후에 삭제 합 니 다
  • deleteAll():모든 기록 을 삭제 합 니 다.

  • 고치다.
    update(User entity):기록 업데이트

    조사 하 다.
    loadAll():모든 기록 조회load(Long key):메 인 키 에 따라 기록 을 조회 합 니 다queryBuilder().list():반환:List
  • query Builder().where(UserDao.Properties.Name.eq(").list():반환:List
  • queryRaw(String where,String selectionArg):반환:List총결산
    이로써 그린 다 오의 기본 적 인 사용 방법 은 여기까지 입 니 다.그 다음 에 데이터 의 업그레이드 등에 관 한 문제 가 있 습 니 다.그 다음 에 구체 적 으로 소개 하 겠 습 니 다.
    이상 은 본 고의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.또한 저 희 를 많이 지지 해 주시 기 바 랍 니 다!

    좋은 웹페이지 즐겨찾기