0 / 0 / 0
Регистрация: 09.04.2023
Сообщений: 39
1

Ошибка при создании схемы БД

09.04.2023, 13:28. Показов 1324. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день! 1. создал БД (testDB)на postgresql. 2. Создаю в БД схему (SDevice), возникает исключение, ничего не могу понять, подскажите в чем проблема???

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
package condb;
 
import java.sql.Connection;
import java.sql.DriverManager;
 
public class connectServerDB {   
    String driverDB= "org.postgresql.Driver";
    String serverDB = "jdbc:postgresql://localhost:5432/";
    String login = "postgres";
    String password = "123456";
    String DB_URL =serverDB;  
    Connection connect;
    
    public connectServerDB(){
        try {
           Connection con =  DriverManager.getConnection(DB_URL, login, password);
            this.connect=con;
        }catch (Exception e) {
           e.printStackTrace(); 
        }
    }
    
    public connectServerDB(String nameDB){
        try {
          DB_URL=DB_URL+nameDB;
          Connection con =  DriverManager.getConnection(DB_URL, login, password);
          this.connect=con;
        }catch (Exception e) {
           e.printStackTrace(); 
        }
    }
}
 
package condb;
 
import java.sql.Statement;
 
public class createDB {
 
    public static void main(String[] args) {
        // TODO code application logic here
        try {
           Class.forName("org.postgresql.Driver");
        }catch (Exception e) {
           e.printStackTrace(); 
        }
        createDB DB=new createDB();
        DB.createDB();
        DB.createSchema();
    }
    
    public void createDB(){
        String nameDB = "testDB";
        connectServerDB conServerDB =new connectServerDB();
        try {
            Statement stmt = conServerDB.connect.createStatement();
            String sql = "CREATE DATABASE "+nameDB;
            stmt.executeUpdate(sql);
            System.out.println("DB 'testDB' created successfully...");
        }catch (Exception e) {
           e.printStackTrace(); 
        }
    }
    
        public void createSchema(){
            String nameDB = "testDB";
            connectServerDB conServerDB =new connectServerDB(nameDB);
            try {
                Statement stmt = conServerDB.connect.createStatement();
                String sql = "CREATE SCHEMA SDevice";
                stmt.executeUpdate(sql);
                System.out.println("Schеma 'SDevice' created successfully...");
                
            }catch (Exception e) {
                e.printStackTrace(); 
            }
    }
}

Базу создалась, а при создании схемы ошибки

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
ant -f C:\\jv\\conDB -Dnb.internal.action.name=debug -Ddebug.class=condb.createDB debug
init:
Deleting: C:\jv\conDB\build\built-jar.properties
deps-jar:
Updating property file: C:\jv\conDB\build\built-jar.properties
compile:
org.postgresql.util.PSQLException: �����: ���� ������ "testDB" �� ����������
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2713)
    at org.postgresql.core.v3.QueryExecutorImpl.readStartupMessages(QueryExecutorImpl.java:2825)
    at org.postgresql.core.v3.QueryExecutorImpl.<init>(QueryExecutorImpl.java:175)
    at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:313)
    at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:54)
    at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:263)
    at org.postgresql.Driver.makeConnection(Driver.java:443)
    at org.postgresql.Driver.connect(Driver.java:297)
    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:677)
    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:228)
    at condb.connectServerDB.<init>(connectServerDB.java:39)
    at condb.createDB.createSchema(createDB.java:47)
    at condb.createDB.main(createDB.java:29)
debug:
BUILD SUCCESSFUL (total time: 12 seconds)

ошибка возникает в классе connectServerDB отметил звездочками ***

Java
1
2
3
4
5
6
7
8
9
public connectServerDB(String nameDB){
        try {
          DB_URL=DB_URL+nameDB;
         *** Connection con =  DriverManager.getConnection(DB_URL, login, password);
          this.connect=con;
        }catch (Exception e) {
           e.printStackTrace(); 
        }
    }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.04.2023, 13:28
Ответы с готовыми решениями:

Ошибка при создании схемы данных
Добрый день! Помогите пожалуйста решить проблему! Я создаю базу данных в Access для производства своей продукции. Суть в следующем: ...

Ошибка 0x534 при создании схемы данных
Здравствуйте, я только начал общаться с SQL Server из под VS2010. Создаю свою первую БД. В обозревателе серверов создал новое подключение,...

Ошибка при создании дескриптора окна при динамическом создании кнопок
public Form1() { InitializeComponent(); } int height = 10; int width = 10; ...

7
74 / 53 / 24
Регистрация: 10.06.2015
Сообщений: 162
09.04.2023, 13:33 2
Замените
Java
1
connectServerDB conServerDB = new connectServerDB(nameDB);
на
Java
1
connectServerDB conServerDB = new connectServerDB(serverDB + nameDB);
0
0 / 0 / 0
Регистрация: 09.04.2023
Сообщений: 39
09.04.2023, 15:58  [ТС] 3
не помогло, да и смысл?
Java
1
2
3
4
5
6
7
8
9
public connectServerDB(String nameDB){
        try {
          DB_URL=DB_URL+nameDB;
          Connection con =  DriverManager.getConnection(DB_URL, login, password);
          this.connect=con;
        }catch (Exception e) {
           e.printStackTrace(); 
        }
    }
DB_URL="jdbc:postgresql://localhost:5432/testDB" я проверял в процессе отладки, все параметры нормально передаются
login="postgres"
password="123456"

и база создалась нормально, а схема нет...

Добавлено через 13 минут
уточнение postgresql 10, на работе postgresql 9.6 и там все работает, может от версии зависеть ?
0
Vala Valechka Metroplitan
 Аватар для Ludwig Valentin
157 / 240 / 25
Регистрация: 11.08.2022
Сообщений: 2,509
10.04.2023, 06:27 4
Отлавливайте не Exception, а SQLException.
Может, выведет номер ошибки SQL.
Тогда с помощью поисковой машины найдёте описание ошибки.
А так у вас не совсем ясно, какая кодировка установлена в БД.
0
0 / 0 / 0
Регистрация: 09.04.2023
Сообщений: 39
16.04.2023, 13:56  [ТС] 5
Добрый день! кому интересно проблема была в названии БД "testDB".

String nameDB = "testDB";
connectServerDB conServerDB =new connectServerDB();
try {
Statement stmt = conServerDB.connect.createStatement();
String sql = "CREATE DATABASE "+nameDB;


после создания БД в Postgresql ее название выглядело так "testdb", все с маленькой буквы, а я пытался подключиться к БД "testDB". Получается при подключении чувствителен к регистру. Почему при создании БД не чувствителен, ведь в запросе имя БД "testDB"?
0
Amabile opus
 Аватар для 4eDo
109 / 65 / 25
Регистрация: 08.01.2019
Сообщений: 308
17.04.2023, 10:02 6
Цитата Сообщение от PavelK_1381 Посмотреть сообщение
Почему при создании БД не чувствителен, ведь в запросе имя БД "testDB"?
Как я понимаю, это что-то вроде фишки. То ли конкретно java + postgres, то ли чего-то одного. Название таблицы или поля сложное? snake_case в помощь.
0
0 / 0 / 0
Регистрация: 09.04.2023
Сообщений: 39
17.04.2023, 10:15  [ТС] 7
подскажите а что с кодировкой не так? как это исправить?

org.postgresql.util.PSQLException: �����: ���� ������ "testDB" �� ����������
0
Vala Valechka Metroplitan
 Аватар для Ludwig Valentin
157 / 240 / 25
Регистрация: 11.08.2022
Сообщений: 2,509
17.04.2023, 12:28 8
Цитата Сообщение от PavelK_1381 Посмотреть сообщение
подскажите а что с кодировкой не так? как это исправить?
Кодировку postgresql для Java надо ставить UTF-8.
Или будет русские буквы не отображать.
Или перекодировать придётся.
Как перекодировать - как-то так
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.04.2023, 12:28
Помогаю со студенческими работами здесь

Разница в ключах при создании схемы таблицы
Господа, подскажите пожалуйста, совсем запутался уже.. Чем отличаются $table-&gt;id(); от $table-&gt;increments('id'); от...

Ошибка 150 при создании таблицы, ошибка в коде?
Код генерируется программой, но работать на сервере нехочет, к сожелению попойму где там может быть ошибка. Опытным путём выяснил что...

При создании класса в проекте, после сборки появляется ошибка Ошибка HTTP 403.14 - Forbidden.
Сайт только начинаю делать. БД подключена, данные выводятся. При создании класса в проекте, после сборки появляется ошибка Ошибка HTTP...

Ошибка при чтении символов строки при создании объекта класса
У меня имеется класс Song, в котором присутствуют поля имени песни (Name) и длительности песни (Duration). Также в этом классе есть...

Ошибка при создании объекта. (При изменении цвета заполнения фигуры)
Дано: Adobe Flash CS3 Prof. Требуется программно изменить цвет заполнения нарисованной фигуры, преобразованной в символ. При помощи...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

Новые блоги и статьи
Java Micronaut в Docker: контейнеризация с Maven и Jib
Javaican 16.03.2025
Когда речь заходит о микросервисной архитектуре на Java, фреймворк Micronaut выделяется среди конкурентов. Он создан с учётом особенностей облачных сред и контейнеров, что делает его идеальным. . .
Управление зависимостями в Java: Сравнение Spring, Guice и Dagger 2
Javaican 16.03.2025
Инъекция зависимостей (Dependency Injection, DI) — один из фундаментальных паттернов проектирования, который радикально меняет подход к созданию гибких и тестируемых Java-приложений. Суть этого. . .
Apache Airflow для оркестрации и автоматизации рабочих процессов
Mr. Docker 16.03.2025
Управление сложными рабочими процессами — одна из главных головных болей инженеров данных и DevOps-специалистов. Представьте себе: каждый день нужно запускать десятки скриптов в определенной. . .
Оптимизация приложений Java для ARM
Javaican 16.03.2025
ARM-архитектура переживает настоящий бум популярности в технологическом мире. Когда-то воспринимаемая исключительно как решение для мобильных устройств и встраиваемых систем, сегодня она штурмует. . .
Управление состоянием в Vue 3 с Pinia и Composition API
Reangularity 16.03.2025
Когда я начал работать с Vue несколько лет назад, мне казалось достаточным использовать простую передачу данных через props и события между компонентами. Однако уже на среднем по сложности проекте. . .
Введение в DevSecOps: основные принципы и инструменты
Mr. Docker 16.03.2025
DevSecOps - это подход к разработке программного обеспечения, который объединяет в себе принципы разработки (Dev), безопасности (Sec) и эксплуатации (Ops). Суть подхода заключается в том, чтобы. . .
GitHub Actions vs Jenkins: Сравнение инструментов CI/CD
Mr. Docker 16.03.2025
В этой битве за эффективность и скорость выпуска программных продуктов ключевую роль играют специализированные инструменты. Два гиганта в этой области — GitHub Actions и Jenkins — предлагают разные. . .
Реактивное программировани­е с Kafka Stream и Spring WebFlux
Javaican 16.03.2025
Реактивное программирование – это программная парадигма, ориентированная на потоки данных и распространение изменений. Она позволяет выражать статические или динамические потоки данных и. . .
Простая нейросеть на КуМир: Учебное пособие по созданию и обучению нейронных сетей
EggHead 16.03.2025
Искусственные нейронные сети — удивительная технология, позволяющая компьютерам имитировать работу человеческого мозга. Если вы хотя бы немного интересуетесь современными технологиями, то наверняка. . .
Исполнитель Кузнечик в КуМир: Решение задач
EggHead 16.03.2025
Среди множества исполнителей в системе КуМир особое место занимает Кузнечик — простой, но невероятно полезный виртуальный персонаж, который перемещается по числовой прямой, выполняя ваши команды. На. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru