LitePal 데이터베이스 사용 분석 ~
우연히 곽 대신 님 의 오픈 소스 데이터 베 이 스 를 발 견 했 습 니 다. 정말 간소화 되 었 습 니 다 ~ 개인 적 으로 그린 다 오 를 위해 오픈 소스 주 소 를 많이 사용 했다 고 생각 합 니 다.https://github.com/LitePalFramework/LitePal 작가 의 블 로그:http://blog.csdn.net/sinyu890807/article/category/2522725
LitePal 의 빠 른 설정
1. Jar 가방 또는 소스 코드 도입
프로젝트 의 build. gradle 에 Android Studio 를 사용 하여 추가:
dependencies {
compile 'org.litepal.android:core:1.3.0'
}
Eclipse 는 github 에서 jar 가방 을 다운로드 할 수 있 습 니 다.
2. litepal. xml 설정
프로젝트 의 assets 디 렉 터 리 아래 에 litepal. xml 파일 을 새로 만 듭 니 다. 내용 은 다음 과 같 습 니 다.
해석 하 다.
( )
( )
3. LitePalApplication 설정
AndroidManifest. xml 에 LitePalApplication 을 설정 합 니 다. 다음 과 같 습 니 다.
...
자신의 애플 리 케 이 션 이 있 었 다 면 오래 물 려 받 았 으 면 좋 겠 습 니 다. 다음 과 같 습 니 다.
public class MyApplication extends LitePalApplication {
...
}
4. LitePal 의 건축 표
대상 관계 맵 모델 의 이념 에 따라 모든 표 는 하나의 모델 (Model) 에 대응 해 야 한다. 표를 만 들 려 면 먼저 모델 류 를 새로 만들어 야 한다.
package com.lee.codeplus.db;
import org.litepal.crud.DataSupport;
/**
* Created by a5055 on 2017/9/6.
*/
public class ArticleDB extends DataSupport {
private long id;
private int articleID;
private String data;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public int getArticleID() {
return articleID;
}
public void setArticleID(int articleID) {
this.articleID = articleID;
}
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
}
주!
private 수식 필드 만 데이터베이스 시트 에 매 핑 됩 니 다. 즉, 어떤 필드 가 매 핑 되 고 싶 지 않 으 면 Public, proctected 또는 default 수정자 로 설정 하면 됩 니 다.
LitePal 의 맵 규칙 은 매우 경량급 입 니 다. 다른 데이터베이스 프레임 워 크 와 달리 모든 모델 류 에 맵 관 계 를 따로 설정 해 야 하 는 XML 입 니 다. LitePal 의 모든 맵 은 자동 으로 완 성 됩 니 다.LitePal 의 데이터 형식 지원 에 따라 대상 관 계 를 매 핑 할 수 있 는 데이터 형식 은 모두 8 가지 로 int, short, long, float, double, boolean, String 과 Date 가 있 습 니 다.이 8 가지 데이터 형식 으로 설 명 된 필드 는 데이터베이스 시트 에 자동 으로 매 핑 되 며 추가 설정 이 필요 하지 않 습 니 다.
배치 하 다.
Model 을 만 든 후에 우 리 는 그 를 맵 목록 에 설정 합 니 다. 즉, assest 디 렉 터 리 에 있 는 litepal. xml 파일 을 편집 하고 탭 에 DEST 류 의 성명 을 추가 합 니 다. 여기 서 주의해 야 할 것 은 클래스 의 전체 클래스 입 니 다.
LitePal 업그레이드 데이터베이스 (2 가지 상황)
1. 신규 표
litepal. xml 의 version 값 을 하나 더 하면 됩 니 다.
2. 표 구조 변화
대상 을 직접 수정 하고 litepal. xml 의 version 값 을 1 로 추가 하면 됩 니 다.
LitePal 의 저장 작업
LitePal 은 데 이 터 를 저장 하려 면 먼저 모델 류 가 DataSupport 를 계승 해 야 합 니 다. 즉,:
public class ArticleDB extends DataSupport {
private long id;
private int articleID;
private String data;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public int getArticleID() {
return articleID;
}
public void setArticleID(int articleID) {
this.articleID = articleID;
}
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
}
DataSupport 클래스 를 계승 한 후, 이러한 실체 클래스 는 CRUD 조작 을 하 는 능력 을 가지 게 되 었 다.
기억 장치 동작:
public static boolean save(Article article) {
ArticleDB db = new ArticleDB();
db.setArticleID(article.getId());
db.setData(JSON.toJSONString(article));
return db.save();
}
LitePal 의 수정 작업
ArticleDB 표 의 id 가 4 인 articleID 를 '1' 로 바 꾸 려 면 이렇게 쓸 수 있 습 니 다.
ContentValues values = new ContentValues();
values.put("articleID", "1");
DataSupport.update(ArticleDB .class, values, 4);
//
ArticleDB db= new ArticleDB ();
db.setArticleID(1);
db.update(4);
ArticleDB 표 에 있 는 모든 articleiD 를 '1' 로 바 꾸 려 면 '2' 라 고 쓸 수 있 습 니 다.
ContentValues values = new ContentValues();
values.put("destId", "2");
DataSupport.updateAll(ArticleDB .class, values, "articleID= ?", "1");
//
ArticleDB db= new ArticleDB ();
db.setdestId("2");
db.updateAll("articleID= ?", "1");
LitePal 삭제 작업
예 를 들 어 ArticleDB 표 의 id 가 2 인 기록 을 삭제 하려 면 이렇게 쓸 수 있 습 니 다.
DataSupport.delete(ArticleDB .class, 2);
ArticleDB 표 의 articleID 가 "1" 인 모든 데 이 터 를 삭제 하려 면 이렇게 쓸 수 있 습 니 다.
DataSupport.deleteAll(ArticleDB .class, "articleID= ? ", "1");
ArticleDB 표 의 모든 데 이 터 를 삭제 하려 면 이렇게 쓸 수 있 습 니 다.
DataSupport.deleteAll(ArticleDB .class);
LitePal 조회 작업
ArticleDB 표 의 id 가 1 인 이 기록 을 조회 하고 LitePal 을 사용 하면 이렇게 쓸 수 있 습 니 다.
ArticleDB db= DataSupport.find(ArticleDB .class, 1);
ArticleDB 표 의 첫 번 째 데 이 터 를 가 져 오 려 면 이렇게 쓰 십시오.
ArticleDB firstdb = DataSupport.findFirst(ArticleDB .class);
ArticleDB 표 의 마지막 데 이 터 를 가 져 오 려 면 이렇게 쓰 십시오.
ArticleDB lastdb = DataSupport.findLast(ArticleDB .class);
ArticleDB 표 의 id 가 1, 3, 5, 7 인 데 이 터 를 모두 찾 으 려 면 이렇게 써 야 합 니 다.
List dbs = DataSupport.findAll(ArticleDB .class, 1, 3, 5, 7);
모든 데 이 터 를 조회 하려 면 이렇게 쓰 십시오.
List dbs = DataSupport.findAll(ArticleDB .class);
ArticleDB 표 의 모든 articleiD 가 '1' 인 데 이 터 를 조회 하려 면 이렇게 쓸 수 있 습 니 다.
List dbs = DataSupport.where("articleID= ?", "1").find(ArticleDB .class);
data 라 는 열 데이터 만 있 으 면
List dbs = DataSupport.select("data").where("articleID= ?", "1").find(ArticleDB .class);
id 역순 으로 정렬
List dbs = DataSupport.select("data").where("articleID= ?", "1").order("id").find(ArticleDB .class);
10 줄 만.
List dbs = DataSupport.select("data").where("articleID= ?", "1").order("id").limit(10).find(ArticleDB .class);
페이지 별로 전시 하 다.
List dbs = DataSupport.select("data").where("articleID= ?", "1").order("id").limit(10).offset(10).find(ArticleDB .class);
LitePal 의 집합 함수
http://blog.csdn.net/guolin_blog / article / details / 40614197 이리 와 봐 ~ ~ 힘 들 어 죽 겠 어.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.