Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Применение паттерна "Посетитель" к коллекции объек

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

Red Planet



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всех приветствую. Необходимо считать из файлов JSON информацию и вставить ее в БД. Для примера пусть это будут страны и международные организации.
 
Также есть JSON с континентами. Не хотелось бы мешать логику парсинга JSON и вставки в БД.  
Если бы можно было вставлять по одной стране, континенту и организации, то сошел бы пример с Википедии. Вставлять необходимо все записи сразу, а не по одной, так как bulk insert работает в разы быстрее.
 

Код:
class JsonParser {
 
    // Names used in the JSON files
    private static final String NAME = "name";
    private static final String ID = "id";
    private static final String ORG_IDS = "org_ids";
    // File extension
    private static final String DOT = ".";
    private static final String JSON = "json";
 
    private static final String SPACE = " ";
    private static final String COMMA = ",";
    private static final String COLON = ":";
     
    private List<Country> mCountries;
    private List<Organization> mOrgs;
    private List<Continent> mContinents;
 
    public JsonParser(Context context) {
        mCountries = new ArrayList<JsonParser.Country>();
        mOrgs = new ArrayList<JsonParser.Organization>();
        mContinents = new ArrayList<JsonParser.Continent>();
    }
 
    private List<Country> readCountriesArray() throws IOException {
        // TODO: implement it
        return mCountries;
    }
 
    private List<Organization> readOrgsArray() throws IOException {
        // TODO: implement it
        return mOrgs;
    }
 
    /**
     * Common base class for all the entities read from JSON file. The entities are {@link Country},
     * {@link Organization}, and {@link Continent}
     *  
     * @author dmitriev-ma
     *  
     */
    abstract class BaseEntity {
 
        private String name;
        private long id;
 
        private BaseEntity(long id, String name) {
            this.id = id;
            this.name = name;
        }
 
        public String getName() {
            return name;
        }
 
        @Override
        public String toString() {
            return ID + COLON + SPACE + id + COMMA + SPACE + NAME + COLON + SPACE + name;
        }
    }
 
    class Country extends BaseEntity {
 
        private List<Long> orgsIds;
 
        public Country(long id, String name, List<Long> orgsIds) {
            super(id, name);
            this.orgsIds = new ArrayList<Long>();
            this.orgsIds.addAll(orgsIds);
        }
 
        public List<Long> getOrgsIds() {
            return orgsIds;
        }
 
        @Override
        public String toString() {
            return super.toString() + COMMA + SPACE + ORG_IDS + SPACE + orgsIds;
        }
 
    }
 
    class Organization extends BaseEntity {
 
        private Organization(long id, String name) {
            super(id, name);
        }
    }
 
    class Continent extends BaseEntity {
 
        private Continent(long id, String name) {
            super(id, name);
        }
    }
}

Всего записей: 215 | Зарегистр. 18-06-2009 | Отправлено: 11:31 16-05-2013
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Применение паттерна "Посетитель" к коллекции объек


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru