ActiveAndroid -- Android 경량급 ORM 프레임 워 크
5154 단어 androidsqliteActiveAndroid
Github:ActiveAndroid
ActiveAndroid 는 가 벼 운 ORM 프레임 워 크 라 고 할 수 있 으 며, save () 와 delete () 등 을 통 해 삭제 와 검사 등 을 간단하게 할 수 있 습 니 다.배치 도 간단 하 다.
다음은 작가 의 원 어 입 니 다.
ActiveAndroid is an active record style ORM (object relational mapper). What does that mean exactly? Well, ActiveAndroid allows you to save and retrieve SQLite database records without ever writing a single SQL statement. Each database record is wrapped neatly into a class with methods like save() and delete().
ActiveAndroid does so much more than this though. Accessing the database is a hassle, to say the least, in Android. ActiveAndroid takes care of all the setup and messy stuff, and all with just a few simple steps of configuration.
시작 하 다
AndroidManifest. xml 에 이 두 개 를 추가 해 야 합 니 다.
AA_DB_NAME
(이 name 은 고 칠 수 없 지만 선택 할 수 있 습 니 다. 쓰 지 않 으 면 기본 "Application. db" 값 입 니 다) AA_DB_VERSION
(optional – defaults to 1) ...
<meta-data android:name="AA_DB_NAME" android:value="your.db" />
<meta-data android:name="AA_DB_VERSION" android:value="5" />
이것
<application>
은 반드시 지정 해 야 하지만, 당신 도 자신의 응용 프로그램 을 사용 하여 계승 할 수 있 습 니 다 com.activeandroid.app.Application
public class MyApplication extends com.activeandroid.app.Application { ...
만약 당신 이 원 하지 않 거나 계승 할 수 없다 면
com.activeandroid.app.Application
이렇게 하 세 요.
public class MyApplication extends SomeLibraryApplication {
@Override
public void onCreate() {
super.onCreate();
ActiveAndroid.initialize(this);
}
@Override
public void onTerminate() {
super.onTerminate();
ActiveAndroid.dispose();
}
}
ActiveAndroid.initialize(this);
초기 화 작업, ActiveAndroid.dispose();
청소 작업데이터베이스 모델 만 들 기
저 희 는
@Table(name = "Items")
을 사용 하여 표를 표시 하고 @Column(name = "Name")
를 사용 하여 열 을 표시 합 니 다. ActiveAndroid 는 자체 적 으로 증가 하 는 ID 를 메 인 키 로 한 다음 에 주석 설명 에 따라 클래스 를 데이터베이스 시트 로 표시 합 니 다.
@Table(name = "Items")
public class Item extends Model {
@Column(name = "Name")
public String name;
@Column(name = "Category")
public Category category;
public Item(){
super();
}
public Item(String name, Category category){
super();
this.name = name;
this.category = category;
}
}
관계 에 의존 하 는 데이터베이스 시트
만약 Item 과 Category 가 다 대 일 관계 라면, 우 리 는 이렇게 그들의 종 류 를 만 들 수 있 습 니 다.
@Table(name = "Items")
public class Item extends Model {
@Column(name = "Name")
public String name;
@Column(name = "Category")
public Category category;
}
<!-- lang: java -->
@Table(name = "Categories")
public class Category extends Model {
@Column(name = "Name")
public String name;
public List<Item> items() {
return getMany(Item.class, "Category");
}
}
데이터베이스 에 데 이 터 를 저장 하고 업데이트 하 는 방법
싱글 삽입
카 테 고리 대상 저장
Category restaurants = new Category();
restaurants.name = "Restaurants";
restaurants.save();
category 를 할당 하고 데이터베이스 에 저장 합 니 다.
Item item = new Item();
item.category = restaurants;
item.name = "Outback Steakhouse";
item.save();
일괄 삽입
데 이 터 를 대량으로 삽입 하려 면 트 랜 잭 션 (transaction) 을 사용 하 는 것 이 좋 습 니 다.
ActiveAndroid.beginTransaction();
try {
for (int i = 0; i < 100; i++) {
Item item = new Item();
item.name = "Example " + i;
item.save();
}
ActiveAndroid.setTransactionSuccessful();
}
finally {
ActiveAndroid.endTransaction();
}
사 무 를 사용 하면 40ms 밖 에 안 걸 리 고 그렇지 않 으 면 4 초 걸 립 니 다.
기록 삭제
우 리 는 기록 하 나 를 삭제 하 는 세 가지 방법 이 있다.
Item item = Item.load(Item.class, 1);
item.delete();
<!-- lang: java -->
Item.delete(Item.class, 1);
<!-- lang: java -->
new Delete().from(Item.class).where("Id = ?", 1).execute();
쉽 죠?
조회 데이터베이스
저 자 는 조 회 를 SQLite 의 네 이 티 브 검색 어 처럼 만 들 었 습 니 다. 거의 모든 명령 을 포함 하고 있 습 니 다. com. activeandroid. query 패키지 에는 다음 과 같은 종류 가 있 습 니 다.
예 를 들 어서 설명해 드릴 게 요.
public static Item getRandom(Category category) {
return new Select()
.from(Item.class)
.where("Category = ?", category.getId())
.orderBy("RANDOM()")
.executeSingle();
}
대응 하 는 sqlite 조회 문 구 는
select * from Item where Category = ? order by RANDOM()
물론 다른 많은 명령 도 지원 합 니 다.이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.