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

Сохранить таблицу PostgreSQL в файл

29.03.2021, 13:02. Показов 9006. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, есть таблица pupils, которую я просматриваю, как сделать так чтобы возможно было сохранить ее в файл?
Код который есть на данный момент:
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
package edu.javacourse.database;
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
 
public class SimpleDb 
{
 
       //  Database credentials
          static final String DB_URL = "jdbc:postgresql://127.0.0.1:5432/muz_school";
          static final String USER = "postgres";
          static final String PASS = "11111111";
          
          private static Connection con;
          private static Statement stmt;
          private static ResultSet rs;
      public static void main(String[] argv) {
     
        System.out.println("Testing connection to PostgreSQL JDBC");
     
        try {
            Class.forName("org.postgresql.Driver");
        } catch (ClassNotFoundException e) {
            System.out.println("PostgreSQL JDBC Driver is not found. Include it in your library path ");
            e.printStackTrace();
            return;
        }
     
        System.out.println("PostgreSQL JDBC Driver successfully connected");
        Connection connection = null;
     
        try {
            connection = DriverManager
            .getConnection(DB_URL, USER, PASS);
     
        } catch (SQLException e) {
            System.out.println("Connection Failed");
            e.printStackTrace();
            return;
        }
     
        if (connection != null) {
            System.out.println("You successfully connected to database now");
        } else {
            System.out.println("Failed to make connection to database");
        }
        String query = "select * from pupils";
 
        try {
            con = DriverManager.getConnection(DB_URL, USER, PASS);
            stmt = con.createStatement();
            rs = stmt.executeQuery(query);
            while (rs.next()) {
                int pupil_code = rs.getInt(1);
                String class_code2 = rs.getString(2);
                String surname = rs.getString(3);
                String name = rs.getString(4);
                int years = rs.getInt(5);
                System.out.println("Pupils : " + pupil_code + " " + class_code2 + " " + surname + " " + name + " " + years);
            }
 
        } catch (SQLException sqlEx) {
            sqlEx.printStackTrace();
        } finally {
 
            try { con.close(); } catch(SQLException se) { }
            try { stmt.close(); } catch(SQLException se) { }
            try { rs.close(); } catch(SQLException se) {  }
        }
      }
    }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.03.2021, 13:02
Ответы с готовыми решениями:

Сохранить таблицу в csv файл
Как можно сохранить таблицу в csv файл? И оператор импорта тоже напишите. Добавлено через 37 минут Точнее, как выставить расширения...

Сохранить таблицу в файл
Собрал код сохраняющий таблицу в файл, но он мне ненравится тем что он сохраняет все данные построчно. var List: TStringList; ...

Сохранить таблицу в Excel файл
Здравствуйте. Прошу Вас выручить меня. Есть таблица мне нужно ее сохранить в переменную (Например ViewBag.M), чтобы открыть ее можно было...

12
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
29.03.2021, 13:47
Цитата Сообщение от AlinkaP Посмотреть сообщение
System.out.println("Pupils : " + pupil_code + " " + class_code2 + " " + surname + " " + name + " " + years);
Очевидно, надо писать не в System.out, а в файл
0
4 / 3 / 1
Регистрация: 07.11.2019
Сообщений: 330
29.03.2021, 13:54  [ТС]
xoraxax, Как именно это должно происходить пробовала вот так, но записывает только последнюю запись.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 while (rs.next()) {
                int pupil_code = rs.getInt(1);
                String class_code2 = rs.getString(2);
                String surname = rs.getString(3);
                String name = rs.getString(4);
                int years = rs.getInt(5);
                try(FileOutputStream fos=new FileOutputStream("C://notes.txt"))
                {
                    byte[] buffer = surname.getBytes();
                    byte[] buffer1 = name.getBytes(); 
                    fos.write(buffer, 0, buffer.length);
                    fos.write(buffer1, 0, buffer1.length);
                    System.out.println("\r\n");
                }
                catch(IOException ex){
                      
                    System.out.println(ex.getMessage());
                }
                System.out.println("The file has been written");
                System.out.println("Pupils : " + pupil_code + " " + class_code2 + " " + surname + " " + name + " " + years);
            }
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
29.03.2021, 14:00
сделай класс Student, в нем сохраняй всю фигню из бд. Новых студентов в своем цикле добавляй в лист. Потом откроешь файл и лист своих студентов туда запишешь.
0
4 / 3 / 1
Регистрация: 07.11.2019
Сообщений: 330
30.03.2021, 11:03  [ТС]
xoraxax, Вообщем сделала, вроде бы работает, конечно формат вывода в файле не такой как я хотела, но все же функцию свою выполняет. Прикрепляю часть написанного кода:
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
                while (rs.next()) {
                    String nazva_tabl = rs.getString(1);
                    String text = rs.getString(2);
                    String dodano = rs.getString(3);
                    ArrayList <String> list = new ArrayList <String>();
                    list = new ArrayList <String>();
                    list.add(nazva_tabl);
                    list.add(text);
                    list.add(dodano);
                    System.out.println ("List:"  + list.get(0) + "| " + list.get(1) + " |" + list.get(2));
                    try
                    {
                        OutputStream f = new FileOutputStream("C://TR.txt", true);
                        OutputStreamWriter writer = new OutputStreamWriter(f);
                        BufferedWriter out = new BufferedWriter(writer);
                        for(int i = 0; i < list.size(); i++)
                        {
                            out.write(list.get(i));
                            writer.write(System.getProperty("line.separator"));
                            out.flush();
                        }
                    }
                    catch(IOException ex)
                    {
                        System.err.println(ex);
                    }
                }
Добавлено через 1 минуту
Только есть вопрос, как возможно сделать так, чтобы при записи новых данных в файл, старые удалялись?
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
30.03.2021, 11:04
я ж тебе сказал, что надо делать.
0
4 / 3 / 1
Регистрация: 07.11.2019
Сообщений: 330
30.03.2021, 11:48  [ТС]
xoraxax, А что не так я делаю? Я создала метод, в методе получаю таблицу с базы данных, после чего помещаю в лист, и записываю лист в файл, немного изменила код, но теперь одна и та же запись пишется по 3 раза:
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
                while (rs.next()) {
                    String nazva_tabl = rs.getString(1);
                    String text = rs.getString(2);
                    String dodano = rs.getString(3);
                    ArrayList <String> list = new ArrayList <String>();
                    list = new ArrayList <String>();
                    list.add(nazva_tabl);
                    list.add(text);
                    list.add(dodano);
                    System.out.println ("Logs : "  + list.get(0) + "| " + list.get(1) + " |" + list.get(2));
                    try
                    {
                        OutputStream f = new FileOutputStream("C://TR.txt", true);
                        OutputStreamWriter writer = new OutputStreamWriter(f);
                        BufferedWriter out = new BufferedWriter(writer);
                        for(int i = 0; i < list.size(); i++)
                        {
                            writer.write(list.get(0) + " " + list.get(1) + " " + list.get(2) + System.getProperty("line.separator"));
                            out.flush();
                        }
                    }
                    catch(IOException ex)
                    {
                        System.err.println(ex);
                    }
                }
Добавлено через 26 минут
Не знаю насколько это правильно, но теперь записывает ровно столько сколько есть записей в таблице, только не могу понять как сделать так чтобы, при запуске кода, файл очищался полностью, и перезаписывался.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
                        OutputStream f = new FileOutputStream("C://TR.txt", true);
                        OutputStreamWriter writer = new OutputStreamWriter(f);
                        BufferedWriter out = new BufferedWriter(writer);
                        for(int i = 0; i < list.size(); i++)
                        {
                            writer.write(list.get(0) + " " + list.get(1) + " " + list.get(2) + "\r\n");
                            out.close();
                        }
                    }
                    catch(IOException ex)
                    {
                    }
                }
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
30.03.2021, 11:59
что не так я делаю?
У тебя в куче все. Раздели на классы. Получение данных, разбор резултсета, форматирование, вывод и т.д.
0
4 / 3 / 1
Регистрация: 07.11.2019
Сообщений: 330
30.03.2021, 12:09  [ТС]
xoraxax, Это я сделаю, но для начала я хочу узнать как сделать так чтобы файл перезаписывался, потому что если поменять true на false, записывает только последнюю запись.
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
30.03.2021, 12:33
Ну вот ты код нормально сделай и все станет понятно. Каша в коде - каша в голове
0
4 / 3 / 1
Регистрация: 07.11.2019
Сообщений: 330
30.03.2021, 13:06  [ТС]
xoraxax, Спасибо большое, но я хочу сперва выполнить задание, а после этого уже оформить код по правильному.
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
30.03.2021, 14:17
а я хочу емму ватсон, например. Мне кажется, ты не читаешь, что я тебе пишу.
0
31.03.2021, 18:09

Не по теме:

Цитата Сообщение от xoraxax Посмотреть сообщение
а я хочу емму ватсон
не оставляешь надежду :D

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.03.2021, 18:09
Помогаю со студенческими работами здесь

Как сохранить таблицу в файл?
Внешняя обработка создает объекты.Каждый объект записывается в таблицу.После окончания создания объектов таблицу надо сохранить в...

Сохранить таблицу с веб-страницы в файл
есть веб-страница, на которой находитса таблица, каким способом я могу сохранить табл. в файл. при том што страниц много, надо сделать...

сохранить вордовскую таблицу в текстовый файл
Никто не знает как это делается? -сохранить вордовскую таблицу в текстовый файл -создать для этого текстового файла описание schema.ini...

Сохранить таблицу StringGrid в текстовый файл
На основе стандартного шаблона SDI-приложения реализуйте приложение сохранение таблицы в текстовый файл; Вот до чего я дошла: void...

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


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru