Android xml 파일 로 데이터베이스 설정
8829 단어 android
ORM 데이터베이스:https://github.com/wenjiang/SimpleAndroidORM
이벤트 흐름 데이터베이스:https://github.com/wenjiang/EventStreamDB
관심 있 는 사람 은 올 라 가 보 세 요.
이 두 가지 항목 을 이야기 하려 면 한 편의 문장의 편폭 을 놓 을 수 없 기 때문에 매 편 마다 조금 만 이야기 할 뿐이다.
두 개의 자신 이 쓴 데이터 베 이 스 는 모두 필요 한 곳 이 있 습 니 다. xml 파일 에 데이터 베 이 스 를 설정 합 니 다.
파일 설정 데이터 베 이 스 를 이용 하여 많은 언어의 프레임 워 크 에서 제공 합 니 다. 이것 은 매우 편리 한 특성 이기 때 문 입 니 다. 한 곳 에서 데이터 베 이 스 를 설정 하면 구체 적 인 코드 와 관련 되 지 않 아 도 유지 가능성 이 높 습 니 다.
Android 에서 생각 나 는 것 은 xml 파일 을 이용 하 는 것 입 니 다.
이론 적 으로 이 xml 파일 은 모든 폴 더 에 넣 을 수 있 지만 assets 폴 더 에 넣 는 것 이 좋 습 니 다. 이 폴 더 안의 파일 은 읽 기 전용 이기 때문에 이러한 설정 파일 은 당연히 읽 기 전용 입 니 다.
지금 우 리 는 이 xml 파일 안의 물건 을 규정 할 것 이다.
assets 폴 더 에 database. xml 파일 을 만 듭 니 다. 이 파일 은 데이터베이스 설정 파일 입 니 다.
xml 파일 은 xml 해상도 만 있 으 면 탭 을 정의 할 수 있 습 니 다.
데이터베이스 설정 에 있어 서 흔히 볼 수 있 는 것 은 세 가지 가 있 습 니 다. 데이터베이스 이름, 버 전, 표 입 니 다.
database. xml 파일 의 내용 은 다음 과 같 습 니 다.
<?xml version="1.0" encoding="utf-8"?>
<database>
<!-- -->
<dbname value="zwb.db"></dbname>
<!-- -->
<version value="1"></version>
<!-- -->
<list>
<mapping class="com.zwb.args.dbpratice.model.Status"></mapping>
<mapping class="com.zwb.args.dbpratice.model.User"></mapping>
</list>
</database>
물론 이 탭 들 은 모두 스스로 정의 할 수 있 습 니 다. mapping 처럼 table 로 바 꿀 수 있 습 니 다. 그러나 일부 탭 이 한 그룹 이 라면 list 탭 에 넣 는 것 이 좋 습 니 다. 이렇게 하면 xml 해상도 기 를 쉽게 해석 할 수 있 습 니 다.
이제 xml 파일 이 생 겼 습 니 다. xml 해상도 기 를 작성 할 수 있 습 니 다.
우선 assets 의 database. xml 파일 을 읽 습 니 다.
Android 는 assets 폴 더 를 읽 는 방법 을 제공 합 니 다.
InputStream in = null;
try {
in = context.getResources()
.getAssets().open("database.xml");
} catch (IOException e) {
throw new BaseSQLiteException("database.xml is not exist");
}
Android 에서 시스템 파일 이나 자원 을 읽 을 때 getResources 방법 으로 Resources 대상 을 얻 은 다음 이 대상 을 통 해 해당 하 는 자원 을 얻 을 수 있 습 니 다.
데이터베이스. xml 파일 의 InputStream 을 받 으 면 파일 내용 을 읽 을 수 있 습 니 다.
xml 파일 을 읽 으 면 XmlPullParserFactory 와 같은 종 류 를 사용 할 수 있 습 니 다.
XmlPullParserFactory factory;
try {
factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser xpp = factory.newPullParser();
xpp.setInput(in, "UTF-8");
int evtType = xpp.getEventType();
// ,
while (evtType != XmlPullParser.END_DOCUMENT) {
switch (evtType) {
case XmlPullParser.START_TAG:
String tag = xpp.getName();
if (tag.equals("dbname")) {
dbName = xpp.getAttributeValue(0);
} else if (tag.equals("version")) {
version = Integer.valueOf(xpp.getAttributeValue(0));
} else if (tag.equals("mapping")) {
tableSet.add(xpp.getAttributeValue(0));
}
break;
case XmlPullParser.END_TAG:
break;
default:
break;
}
//
evtType = xpp.next();
}
} catch (Exception e) {
LogUtil.e(e.toString());
} finally {
List<String> tableList = new ArrayList<String>();
for (String table : tableSet) {
tableList.add(table);
}
앞에서 정의 한 xml 파일 은 DOM 형식의 xml 파일 이기 때문에 이 xml 파일 이 합 법 적 인지 확인 해 야 합 니 다. 그렇지 않 으 면 분석 에 실패 할 수 있 습 니 다.검사 방법 은 setNamespaceAware 를 true 로 설정 하 는 것 입 니 다.
현재 xml 파일 을 분석 하고 해당 노드 정 보 를 tableList 에 넣 었 습 니 다.
이 를 통 해 분 석 된 정 보 를 통 해 데이터 베 이 스 를 구축 하 는 방법 에 대해 설명 할 것 이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.