Android xml 파일 로 데이터베이스 설정

8829 단어 android
얼마 전에 자신 이 두 개의 데이터 베 이 스 를 봉 인 했 는데 하 나 는 ORM 데이터 베이스 이 고 다른 하 나 는 이벤트 흐름 데이터 베이스 이 며 프로젝트 에 해당 하 는 주 소 는 다음 과 같다.
     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 에 넣 었 습 니 다.
         이 를 통 해 분 석 된 정 보 를 통 해 데이터 베 이 스 를 구축 하 는 방법 에 대해 설명 할 것 이다.

좋은 웹페이지 즐겨찾기