Форум программистов, компьютерный форум, киберфорум
Java: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 19.05.2015
Сообщений: 25

Не создает все таблицы

30.07.2017, 20:46. Показов 718. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В общем нужно считать JSON файл, в нем хранятся данные о стране и городах которые есть там. Потом занести все в локальную БД.

Такой вопрос, создается до 125, а дальше выскакивает ошибка "Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 125, Size: 125". Вот кусок кода где описана операция добавления.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
    public static void Razdel(StringBuilder stringbuilder) {
        String s = stringbuilder.toString();
 
        String[] raz = s.split(":");
        spisokstran.add(raz[0].replaceAll("[\\p{Punct}|\\n]", ""));
 
        for (int i = 1; i < raz.length; i++)  // суть в том что бы считывать по :, заменять все символы на !
        // и потом возвращать последнее значение, которое будет следующим названием таблиц.
        {
 
            raz[i] = raz[i].replaceAll("[\\p{Punct}|\\n]", "!");
            String stroka = raz[i];
            // System.out.println(stroka);
            char[] ch = stroka.toCharArray();
            for (int j = 0; j < ch.length; j++) {
                if (!(ch[j] == '!')) {
                    slovo += String.valueOf(ch[j]);
                } else {
                    list3.add(slovo);
                    slovo = "";
                }
            }
 
            for (int iii = 0; iii < list3.size(); iii++) {
                if (list3.get(iii).equals("")) {
                    list3.remove(iii);
                    iii--;
                }
            }
 
            if (list3.size() > 1) {
                spisokstran.add(list3.get(list3.size() - 1));
                list3.remove(list3.size() - 1);
            }
 
 
            String table = spisokstran.get(i - 1);
            updateQuery("INSERT INTO Country(Country)VALUES('" + table + "')");
            table = table.replaceAll(" ", "_");
            CreateTableRB(table);
 
            for (int h = 0; h < list3.size(); h++) {
                updateQuery("INSERT INTO " + table + "(City)VALUES('" + list3.get(h) + "')");
            }
 
 
            list3.clear();
        }
    }
}
Я всего лишь учусь и понимаю что код не лучший, но может кто-то подскажет в чем ошибка и как можно исправить? Ещё около 50 таблиц нужно создать.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.07.2017, 20:46
Ответы с готовыми решениями:

Почему Hibermate не создает таблицы?
В общем изучаю Hibernate. Пытаюсь создать таблицы в БД, вроде все сделал как в туториале, но записей о создании таблиц нет. Вот что выдает...

Программа сама создает таблицы
Съинтегрировал gwt spring и hibernate, по началу не работало потому что выдавало ошибку &quot;таблица ecmproduct_components не...

SQL не создает таблицы в новой БД
Всем привет, я хочу изучать С#. На данный момент от языка хочу получить знания которые сделают возможным написание сложных сайтов как...

5
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
31.07.2017, 21:34
Цитата Сообщение от Baffik4 Посмотреть сообщение
spisokstran.add(raz[0].replaceAll("[\\p{Punct}|\\n]", ""));
это че разбор json?
jackson возьми.
Цитата Сообщение от Baffik4 Посмотреть сообщение
Я всего лишь учусь
заодно поучись дебаггером пользоваться.
Цитата Сообщение от Baffik4 Посмотреть сообщение
updateQuery("INSERT INTO Country(Country)VALUES('" + table + "')");
* * * * * * table = table.replaceAll(" ", "_");
* * * * * * CreateTableRB(table);
это что вообще?
поищи примеры как с jdbc работать, всякие preparedStatements и т.д. в интернете их гора.
откуда переменные берутся и чо они значат - ваще никому не ясно. Чо за list3, например?
1
0 / 0 / 1
Регистрация: 19.05.2015
Сообщений: 25
02.08.2017, 11:52  [ТС]
@xoraxax, Я уже разобрался с проблемой, но опишу подробно что я хотел сделать. Есть файл, в JSON формате, так как с ним работать я ещё не понял, разобрался только как скачивать. Информация хранится в виде:

JSON
1
Ukraine:["Kiev","Poltava"], Russia: ["Tomsk","Omsk]
Ну и так далеё, так как я не понял, как сделать что бы сразу можно было отобрать где страна и где город, я решил разбить строку по ":", далее разбитую строку на "," и убрать лишние символы. После всех операций у нас выходит что последний элемент в списке есть новая страна и его нужно выкинуть из него, и добавить страну в эту таблицу.

list3 -это список где хранятся города которые принадлежат к стране, которую мы нашли ранее. Почему лист3 и так коряво, ну я пока "быдло-кодер".


Java
1
2
3
updateQuery("INSERT INTO Country(Country)VALUES('" + table + "')");
* * * * * * table = table.replaceAll(" ", "_");
* * * * * * CreateTableRB(table);
У нас есть таблица, где хранятся все страны и при выборе страны, открывается информация, какие города есть в данной стране. И вот по шагам:
1) Мы заносим страну в таблицу "Country"
2) Так как я не могу создать таблицу которая хранит название, к примеру "United States" и т.д, то делаю замены, что бы мог создать таблицу.
3)Создаю таблицу.

Да знаю, что выглядит очень криво... Но оно работает))

Мне осталось только считать данные с этого сайта "http://www.geonames.org/export/wikipedia-webservice.html#wikipediaSearch" по стране. Но как это сделать я не пойму. Может вы сможете помочь, что бы я не плодил вопросы.
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
02.08.2017, 12:17
Цитата Сообщение от Baffik4 Посмотреть сообщение
Ukraine:["Kiev","Poltava"], Russia: ["Tomsk","Omsk]
это ваще на json как-то отдаленно похоже
Цитата Сообщение от Baffik4 Посмотреть сообщение
ну я пока "быдло-кодер".
ну так ты примеры то погугли и станешь сразу небыдло-кодер.
Цитата Сообщение от Baffik4 Посмотреть сообщение
Мне осталось только считать данные с этого сайта
для этого надо прочитать про http, REST, посмотреть как работать с этим на java
1
0 / 0 / 1
Регистрация: 19.05.2015
Сообщений: 25
02.08.2017, 19:06  [ТС]
Цитата Сообщение от xoraxax Посмотреть сообщение
это ваще на json как-то отдаленно похоже
Вот ссылка, ну вроде как оно.

Цитата Сообщение от xoraxax Посмотреть сообщение
ну так ты примеры то погугли и станешь сразу небыдло-кодер.
Ну я стараюсь, мое первое приложение с БД было куда ужаснее, так что можно сказать я делаю успехи)) Мне кажется, в 20 лет писать грамотный код очень тяжело, все приходит с опытом. Сейчас я просто хочу сделать для себя.

Цитата Сообщение от xoraxax Посмотреть сообщение
для этого надо прочитать про http, REST, посмотреть как работать с этим на java
Мне нужно считать с сайта "https://en.wikipedia.org/wiki/" +city.
Если я прочитаю я смогу это сделать?
0
02.08.2017, 20:36

Не по теме:

Цитата Сообщение от Baffik4 Посмотреть сообщение
Если я прочитаю я смогу это сделать?
я начинаю сомневаться

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.08.2017, 20:36
Помогаю со студенческими работами здесь

Определите процедуру p (х,у),которая создает массив, в котором сначала идут все положительные числа исходного, а потом все остальные
определите процедуру p (х,у),которая для данного массива х создает массив у,состоящий из элементов массива х ,но переставленныхчто сначала...

Не создает таблицы в SQL server express 2005
Не могу создать таблицу

Даны таблицы А[1..n] ,В[1..m]. Построить таблицу С в которой сначала размещаются все элементы А, затем все элементы таблицы В
кто сможет решите: Даны таблицы А ,В. Построить таблицу С в которой сначала размещаются все элементы А, затем все элементы таблицы В

Вирус делает скрытыми все файлы на флешке и создает каталог <.>
Помогите избавится от этого вируса, и как сделать чтобы файлы стали опять нормальными не форматируя флешку(для телефона). Не мог...

Программа создает текстовый файл и записывает туда все введенные строки
написать две программы. При работе первой программы пользователь вводит не менее пяти строк символов. Строки должны включать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru