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

Java and DB

26.10.2015, 18:58. Показов 2551. Ответов 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
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
27.10.2015, 01:02
Примерное содержимое файла можете показать?
0
9 / 9 / 8
Регистрация: 03.07.2015
Сообщений: 219
27.10.2015, 13:05  [ТС]
turbanoff, конечно:

Andrej 12345
Nikolaj 12344
Dmitrij 12234
Aleksej 13345
...

ну вот и так 1000 рекордов...

Добавлено через 18 минут
Попытался попробовать сделать так, ай да пронесет:
Java
1
2
3
4
String val = "Andrej";
      String sql;
      try {
        sql="INSERT INTO namesRanking (name, rating) VALUES (val,12345);";
Ну естественно не прокатило.Или еще вот так:
Java
1
2
3
      String sql;
      try {
        sql="INSERT INTO namesRanking (name, rating) VALUES (System.out.println("Andrej"),12345);";
Ну так тоже естественно не прокатило))) Вот буду думать дальше...
0
55 / 55 / 39
Регистрация: 19.03.2015
Сообщений: 167
27.10.2015, 13:29
что то типа такого
Java
1
sql="INSERT INTO namesRanking (name, rating) VALUES (" + val + ",12345);";
1
9 / 9 / 8
Регистрация: 03.07.2015
Сообщений: 219
27.10.2015, 13:35  [ТС]
eledev, да что-то вроде этого, тогда бы я мог читать файл присваивать переменной прочитанное и записывать в базу данных.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
String val = "Andrej";
      String sql;
      try {
        sql="INSERT INTO namesRanking (name, rating) VALUES ("+val+",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();
      }
Так тоже не прокатило(((
Пишет:
Error!!!!
java.sql.SQLException: [SQLITE_ERROR] SQL error or missing database (no such column: Andrej)
0
55 / 55 / 39
Регистрация: 19.03.2015
Сообщений: 167
27.10.2015, 13:43
кавычки забыл
Java
1
sql="INSERT INTO namesRanking (name, rating) VALUES ('" + val + "',12345);";
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
27.10.2015, 14:00
Как-то так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        List<String> lines = Files.readAllLines(Paths.get("D:/myFile.txt"));
        connection.setAutoCommit(false);
        try (PreparedStatement preparedStatement = connection.prepareStatement("insert into namesRanking (name, rating) values (?,?)")) {
            for (String line : lines) {
                int spacePosition = line.indexOf(' ');
                String name = line.substring(0, spacePosition);
                String ratingString = line.substring(spacePosition + 1);
                int rating = Integer.parseInt(ratingString);
 
                preparedStatement.setString(1, name);
                preparedStatement.setInt(2, rating);
                preparedStatement.addBatch();
            }
            preparedStatement.executeBatch();
        }
        connection.commit();
Используются PreparedStatement вместо обычных Statement. Это увеличивает скорость вставки и избавляет от проблем с кавычками.
addBatch/executeBatch - батчинг для ускорения загрузки. Чтобы он работал, нужно выставить connection.setAutoCommit(false).
1
 Аватар для Doctor_
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
27.10.2015, 17:24
Кажется в вашем коде просто коммита не хватает в добавлении строк в базу. + turbanoff, прав, ваш код в целом не совсем гут.
0
9 / 9 / 8
Регистрация: 03.07.2015
Сообщений: 219
27.10.2015, 22:52  [ТС]
turbanoff, ну вот, борьба продолжается!!!
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
import java.io.*;
import java.nio.file.Files;
import java.util.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.PreparedStatement;
 
public class ToDataBase {
    
public static final String DRIVER = "org.sqlite.JDBC";
public static final String DB_URL = "jdbc:sqlite:test1.db";
  
private static Connection connection;
private static Statement stmt;
    
  
    public static void main(String[] args){
 
        try {
          Class.forName(DRIVER);
      } catch (ClassNotFoundException e) {
          System.err.println("Brak sterownika JDBC");
          e.printStackTrace();
      }
        
      try {
          connection = DriverManager.getConnection(DB_URL);
          stmt = connection.createStatement();
      } catch (SQLException e) {
          System.err.println("Problem with connection");
          e.printStackTrace();
      }
     
      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();
      }
      connection.setAutoCommit(false);
      List<String> lines = Files.readAllLines(Paths.get("listOfNames.txt"));
      connection.setAutoCommit(false);
      try (PreparedStatement preparedStatement = connection.prepareStatement("insert into namesRanking (name, rating) values (?,?)")) {
          for (String line : lines) {
              int spacePosition = line.indexOf(' ');
              String name = line.substring(0, spacePosition);
              String ratingString = line.substring(spacePosition + 1);
              int rating = Integer.parseInt(ratingString);
 
              preparedStatement.setString(1, name);
              preparedStatement.setInt(2, rating);
              preparedStatement.addBatch();
          }
          preparedStatement.executeBatch();
      }
      connection.commit();
     
      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();
      }
      
      String dropTab="DROP TABLE IF EXISTS namesRanking";
      try {
          stmt.execute(dropTab);
 
      } catch (SQLException e) {
          System.err.println("The table dosn't exist");
          e.printStackTrace();
      }
    
    }
}
Данный код не компилируется. Выдаёт ошибку
C
1
2
3
4
Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    Paths cannot be resolved
 
    at ToDataBase.main(ToDataBase.java:46)
Вот сижу и думаю, что не так с адредсом размещения файла... Файл находится в папке с программой. Еще не уверен в строке №31
Java
1
stmt = connection.createStatement();
Как в том случае использовать PreparedStatemen вместо Statement?

Добавлено через 6 минут
В данном случае
Java
1
stmt = connection.prepareStatement();
не прокатывает, пишет:
The method prepareStatement(String) in the type Connection is not applicable for the arguments ()
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
27.10.2015, 23:18
Цитата Сообщение от Aliaxandr Посмотреть сообщение
Paths cannot be resolved
Нужно добавить импорт
Java
1
import java.nio.file.Paths;
1
9 / 9 / 8
Регистрация: 03.07.2015
Сообщений: 219
27.10.2015, 23:39  [ТС]
turbanoff, да, действительно, импорт надо было добавить и еще throws SQLException, IOException после майна.Добавил явный путь к файлу. Эврика! Эклипс ни на что не жалуется:
Но все же компилятор ругается дальше:

Exception in thread "main" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInput String(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java: 592)
at java.lang.Integer.parseInt(Integer.java: 615)
at ToDataBase.main(ToDataBase.java:53)

А поучилось что-то следующее:
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
import java.io.*;
import java.nio.file.Files;
import java.util.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.PreparedStatement;
import java.nio.file.Paths;
public class ToDataBase {
    
public static final String DRIVER = "org.sqlite.JDBC";
public static final String DB_URL = "jdbc:sqlite:test1.db";
  
private static Connection connection;
private static Statement stmt;
    
  
    public static void main(String[] args) throws SQLException, IOException{
 
        try {
          Class.forName(DRIVER);
      } catch (ClassNotFoundException e) {
          System.err.println("Brak sterownika JDBC");
          e.printStackTrace();
      }
        
      try {
          connection = DriverManager.getConnection(DB_URL);
          stmt = connection.createStatement();
      } catch (SQLException e) {
          System.err.println("Problem with connection");
          e.printStackTrace();
      }
     
      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();
      }
      connection.setAutoCommit(false);
      List<String> lines = Files.readAllLines(Paths.get("C:/Users/listOfNames.txt"));
      connection.setAutoCommit(false);
      try (PreparedStatement preparedStatement = connection.prepareStatement("insert into namesRanking (name, rating) values (?,?)")) {
          for (String line : lines) {
              int spacePosition = line.indexOf(' ');
              String name = line.substring(0, spacePosition);
              String ratingString = line.substring(spacePosition + 1);
              int rating = Integer.parseInt(ratingString);
 
              preparedStatement.setString(1, name);
              preparedStatement.setInt(2, rating);
              preparedStatement.addBatch();
          }
          preparedStatement.executeBatch();
      }
      connection.commit();
     
      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();
      }
      
      String dropTab="DROP TABLE IF EXISTS namesRanking";
      try {
          stmt.execute(dropTab);
 
      } catch (SQLException e) {
          System.err.println("The table dosn't exist");
          e.printStackTrace();
      }
    
    }
}
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
28.10.2015, 00:02
Что-то в файле не так. Пустая строка наверное
1
9 / 9 / 8
Регистрация: 03.07.2015
Сообщений: 219
28.10.2015, 00:25  [ТС]
turbanoff, да были пустые строки, ты как всегда прав. Для того чтобы наверняка из оставил в файле небольшое колическтво сторок:

Noah 18090
Liam 18002
Jacob 17976
Mason 17591
William 16495
Ethan 16127
Michael 15366
Jayden 14656
Daniel 14140
Elijah 13626
Aiden 13527
James 13416
Benjamin 13373
Matthew 13226
Jackson 12488
Logan 12270
David 12226
Anthony 12164
Joseph 12095
Joshua 11680
Andrew 11568

Теперь такие вот маты от компилятора:

Exception in thread "main" java.lang.NumberFormatException: For input string: "18090 "
at java.lang.NumberFormatException.forInput String(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java: 580)
at java.lang.Integer.parseInt(Integer.java: 615)
at ToDataBase.main(ToDataBase.java:53)


Может проще будет написать программу, которая читает файл и заносит в переменную String nam имя, а в переменную int ran рейтинг.И далее, чезер while до конца файла делать следующее:
Java
1
sql="INSERT INTO namesRanking (name, rating) VALUES (" + nam + "," + ran +);";
???
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
28.10.2015, 09:19
Цитата Сообщение от Aliaxandr Посмотреть сообщение
Может проще будет написать программу
Это будет полный ужас. Никогда-никогда так не делайте. За это бьют по рукам

Сделайте так
Java
1
String ratingString = line.substring(spacePosition + 1).trim();
1
 Аватар для Doctor_
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
28.10.2015, 09:54
Aliaxandr, по exception видно что у вас там пробел
Java
1
Exception in thread "main" java.lang.NumberFormatException: For input string: "18090    "
1) делать trim когда считали
2) убрать в файле пробелы
1
9 / 9 / 8
Регистрация: 03.07.2015
Сообщений: 219
28.10.2015, 12:56  [ТС]
Doctor_, оставил три строки в файле, так просто для теста, ФСЕ пробелы убрал,но...

Exception in thread "main" java.nio.file.NoSuchFileException: C:\Users\Александр\workspace\HomeWork\bi nlist1.txt
at sun.nio.fs.WindowsException.translateToI OException(WindowsException.java:79)
at sun.nio.fs.WindowsException.rethrowAsIOE xception(WindowsException.java:97)
at sun.nio.fs.WindowsException.rethrowAsIOE xception(WindowsException.java:102)
at sun.nio.fs.WindowsFileSystemProvider.new ByteChannel(WindowsFileSystemProvider.ja va:230)
at java.nio.file.Files.newByteChannel(Files .java:361)
at java.nio.file.Files.newByteChannel(Files .java:407)
at java.nio.file.spi.FileSystemProvider.new InputStream(FileSystemProvider.java:384)
at java.nio.file.Files.newInputStream(Files .java:152)
at java.nio.file.Files.newBufferedReader(Fi les.java:2784)
at java.nio.file.Files.readAllLines(Files.j ava:3202)
at java.nio.file.Files.readAllLines(Files.j ava:3242)
at ToDataBase.main(ToDataBase.java:46)

Чем дальше в лес тем толще партизаны!!!
0
 Аватар для Doctor_
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
28.10.2015, 13:00
Aliaxandr,
Java
1
java.nio.file.NoSuchFileException
зачит файла, который вы указали, не существует
1
9 / 9 / 8
Регистрация: 03.07.2015
Сообщений: 219
28.10.2015, 13:08  [ТС]
Doctor_, все правильно, сделал ошибку указывая путь к файлу, задолбало на простом спотыкаться снова и снова...
Далее ситуация выглядит так:

Exception in thread "main" java.lang.StringIndexOutOfBoundsExceptio n: String index out of range: -1
at java.lang.String.substring(String.java:1 967)
at ToDataBase.main(ToDataBase.java:51)
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
28.10.2015, 13:12
Цитата Сообщение от Aliaxandr Посмотреть сообщение
задолбало на простом спотыкаться снова и снова
Такое ощущение, что вы вообще не понимаете что именно код делает. И даже не пытаетесь вникнуть, а тупо копи-пастите ошибки сюда.
Не пробовали отладчиком воспользоваться для начала?

Цитата Сообщение от Aliaxandr Посмотреть сообщение
String index out of range: -1
У вас строка в файле некорректная. Скорее всего там нет пробела между именем и рейтингом
1
9 / 9 / 8
Регистрация: 03.07.2015
Сообщений: 219
28.10.2015, 21:06  [ТС]
Doctor_, все заработало, поставил пробелы между, именами и числами, т.к. их изначально убрал, чтобы наверняка проверить, в чем виноваты пробелы, вина была тех пробелов, которые находились между строками!!!

Добавлено через 5 минут
turbanoff, согласен, что ситуация может выглядеть так, что-то подобное делаю впервые, да и в java абсолютный новичёк, поэтому в чем-то ты был прав, но прежде всего читая код, заглядываю в документацию, читаю, что делает данный класс, какие методы имеет итп. Во многом помогает eclipse, тут же можно и почитать обо всем этом

Добавлено через 7 часов 49 минут
Doctor_, turbanoff, спасибо за помощь еще раз, выбрасываю код который получился, может кому-нибудь пригодится. Особое внимание нужно уделить файлу, из которого данные записываются в БД, в нем не должно быть лишних пробелов табуляций и пустых строк инача компилируестя с ошибками.
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
import java.io.*;
import java.nio.file.Files;
import java.util.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.PreparedStatement;
import java.nio.file.Paths;
public class ToDataBase {
    
public static final String DRIVER = "org.sqlite.JDBC";
public static final String DB_URL = "jdbc:sqlite:test1.db";
  
private static Connection connection;
private static Statement stmt;
    
  
    public static void main(String[] args) throws SQLException, IOException{
 
        try {
          Class.forName(DRIVER);
      } catch (ClassNotFoundException e) {
          System.err.println("Brak sterownika JDBC");
          e.printStackTrace();
      }
        
      try {
          connection = DriverManager.getConnection(DB_URL);
          stmt = connection.createStatement();
      } catch (SQLException e) {
          System.err.println("Problem with connection");
          e.printStackTrace();
      }
      String dropTab="DROP TABLE IF EXISTS namesRanking";
      try {
          stmt.execute(dropTab);
 
      } catch (SQLException e) {
          System.err.println("The table dosn't exist");
          e.printStackTrace();
      }
     
      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();
      }
      connection.setAutoCommit(false);
      List<String> lines = Files.readAllLines(Paths.get("C:/Users/Александр/workspace/HomeWork/bin/list1.txt"));
      connection.setAutoCommit(false);
      try (PreparedStatement preparedStatement = connection.prepareStatement("insert into namesRanking (name, rating) values (?,?)")) {
          for (String line : lines) {
              int spacePosition = line.indexOf(' ');
              String name = line.substring(0, spacePosition);
              String ratingString = line.substring(spacePosition + 1);
              int rating = Integer.parseInt(ratingString);
 
              preparedStatement.setString(1, name);
              preparedStatement.setInt(2, rating);
              preparedStatement.addBatch();
          }
          preparedStatement.executeBatch();
      }
      connection.commit();
     
      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();
      }
      try {
          ResultSet result = stmt.executeQuery("SELECT * FROM namesRanking where name like 'A%' ");
          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();
      }
      
      
    
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.10.2015, 21:06
Помогаю со студенческими работами здесь

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(клиент). При попытке передачи объекта от клиента к серверу вылетает...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru