Форум программистов, компьютерный форум, киберфорум
Java: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
9 / 9 / 8
Регистрация: 03.07.2015
Сообщений: 219

Java and DB

26.10.2015, 18:58. Показов 2785. Ответов 26
Метки нет (Все метки)

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

Выкидываю код по частям, но не полностью, чтобы объяснить о чем идет речь(хорошо заданный вопрос имеет больше шансов на ответ, я так надеюсь))

Часть 1. Содаём таблицу, инкрементация, и 2 столбца таблицы name and rating.
Java
1
2
3
4
5
6
7
8
String createName="CREATE TABLE IF NOT EXISTS namesRanking(id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(20), rating int(6))";
      try {
          stmt.execute(createName);
 
      } catch (SQLException e) {
          System.err.println("Error create table");
          e.printStackTrace();
      }
Часть 2. Записываем 3 строки (rows) в нашу БД.
Java
1
2
3
4
5
6
7
8
9
10
11
12
 String sql;
      try {
        sql="INSERT INTO namesRanking (name, rating) VALUES ('Andrej',12345);";
          stmt.execute(sql);
        sql="INSERT INTO namesRanking (name, rating) VALUES ('Nikolaj',12344);";
          stmt.execute(sql);
        sql="INSERT INTO namesRanking (name, rating) VALUES ('Dmitrij', 12234);";
          stmt.execute(sql);
      } catch (SQLException e) {
          System.err.println("Error!!!!");
          e.printStackTrace();
      }
Часть 3. Потом командой (SQLite конкретно в данном случае) выводим содержимое ранее записанных трёх строк на экран.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
try {
          ResultSet result = stmt.executeQuery("SELECT * FROM namesRanking");
          int id;
          String name;
          int rating; 
          while(result.next()) {
              id = result.getInt("id");
              name = result.getString("name");
              rating = result.getInt("rating");
              System.out.println("id="+id+", name="+name+", rating="+rating);
          }
      } catch (SQLException e) {
          System.err.println("Error!!!Can't execute SELECT");
          e.printStackTrace();
      }
Все работает и на экран выводится:

id=1, name=Andrej, rating=12345
id=2, name=Nikolaj, rating=12344
id=3, name=Dmitrij, rating=12234

Все бы хорошо, но данные 3 записи я "вставил" в БД в ручную, как было показано в части 2.
НО это только 3 строки из текстового файла, которые пришлось ручками напечатать, а если стоит задача записать в БД текстовый файл из 1000 строк?
Далее вопросы и мольбы:
1) Возможно ли это сделать без дополнительных прог на компьютере?(работаю в Eclipse и sqlite-jdbc-3.7.2.jar установлен, этого достаточно, чтобы работала данная программа)
2)Если есть идеи как это сделать, напишите пожалуйста!!! Но так чтобы такой чайник как я смог понять))))
3)Ну и конечно же, если есть похожий код, наработки в данной теме, код бы тоже не помешал, ну это конечно по возможности.
ps. жду любых коммент: стеба, иронии и полезной информации)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.10.2015, 18:58
Ответы с готовыми решениями:

Exception in thread "main" java.lang.IllegalArgumentException: illegal component position at java.desktop/java.awt.Cont
import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class...

Какую версию Java поддерживает .Net Java# И какую VS6.0 Java++ ?
Какую версию Java поддерживает .Net Java# И какую VS6.0 Java++ ? Ответье, плиз, новичку, по MSDN я не понятно, это исключительно...

Ошибка reference to List is ambiguous; both interface java.util.List in package java.util and class java.awt.List in...
Почему кгда я загружаю пакеты awt, utill вместе в одной проге при обьявлении елемента List я ловлю такую ошибку. 'listTest.java':...

26
 Аватар для Doctor_
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
28.10.2015, 21:24
Студворк — интернет-сервис помощи студентам
Aliaxandr, ну все эти нюансы с пробелами и пустыми строками, очень просто ифами вылечить и все
0
28.10.2015, 21:26

Не по теме:

Цитата Сообщение от Aliaxandr Посмотреть сообщение
инача компилируестя с ошибками
вы же понимаете разницу между ошибками компиляции и исключениями в runtime?

0
9 / 9 / 8
Регистрация: 03.07.2015
Сообщений: 219
28.10.2015, 22:37  [ТС]
turbanoff, уже читаю об этом!!!а вообще суть понимаю
0
0 / 0 / 1
Регистрация: 12.12.2012
Сообщений: 76
11.12.2015, 13:57
Прочитал в описании к класссу PreparedStatement, что с помощью этого класса можно защитить базу данных от SQL инъекций, и попробовал его использовать в своем приложении. Есть запрос: query = "SELECT password FROM loginpass WHERE login = '?'"; который я передаю параметром в функцию и также параметром передаю login, далее в этой функции делаю следующее:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
        ResultSet result = null;
        try
        {
            PreparedStatement stmt = con.prepareStatement(query);
            stmt.setString(1, login);
            result = stmt.executeQuery();
        }
        catch (SQLException se)
        {
            System.err.println("MySQLAdapter executeScalar SQLException #1 : " + se.getMessage());
            System.err.println(query);
            return null;
        }
но на стороне сервера выдаёт такую ошибку:

MySQLAdapter executeScalar SQLException #1 : Parameter index out of range (1 > number of parameters, which is 0).
SELECT password FROM loginpass WHERE login = '?',

хотя если делать тоже самое без PreparedStatement
Java
1
2
3
4
5
6
7
8
9
10
11
12
if (isConnected == false) return null;
        ResultSet result = null;
        try
        {
           result = con.createStatement().executeQuery(query);
        }
        catch (SQLException se)
        {
            System.err.println("MySQLAdapter executeScalar SQLException #1 : " + se.getMessage());
            System.err.println(query);
            return null;
        }
то все работает нормально. Может кто-то натолкнет на мысль почему такое происходит?
0
 Аватар для Doctor_
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
11.12.2015, 14:06
Зря обернули опострофами
Java
1
SELECT password FROM loginpass WHERE login = '?'
надо без них, ибо setString сам это обеспечит.
1
0 / 0 / 1
Регистрация: 12.12.2012
Сообщений: 76
11.12.2015, 14:22
спасибо заработало, и раз пошла такая пьянка, Doctor_ еще вопрос, а что скажете на счет защиты от SQL инъекций, потому что на разных форумах одни пишут что это защита, а на других пишут что не сильно она и защищает.
0
 Аватар для Doctor_
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
11.12.2015, 15:39
Про инъекций почитайте что нибудь типа:
https://www.owasp.org/index.ph... on_in_Java
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.12.2015, 15:39

Error:(10, 42) java: incompatible types: int cannot be converted to java.math.BigDecimal
import java.math.*; import java.util.Scanner; public class Factorial { public static void main(String args) { Scanner...

При работе JVM обвалвается java c кодом Java Result 1073807364.
При работе JVM обвалвается java c кодом Java Result 1073807364. Если кто-нибудь знает, помогите пожалуйста.

Посоветуйте примеры кода по Java. Теория прочтена, но с языком Java не знакома
Или может кто может дать готовый код. В теории вроде бы не очень сложно. :cry: 1.Напишите процедуру, которая по заданному сообщению...

Что оптимальнее для почтового сервиса - java.IO или java.NIO?
Пишу серверную часть мобильного приложения под Android на JDK, в которое будет интегрирован почтовый сервис, подгрузка новостей, личный...

Java сервер Flash клиент java.io.StreamCorruptedException: invalid stream header
Есть класс сериализованный на стороне java (сервер) и actionscript(клиент). При попытке передачи объекта от клиента к серверу вылетает...


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru