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

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

09.04.2023, 13:28. Показов 1110. Ответов 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(); 
            }
    }
}

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

Код
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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.04.2023, 13:28
Ответы с готовыми решениями:

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

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

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

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

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
Сообщений: 26
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
Matthias Ronald Gerard
149 / 209 / 25
Регистрация: 11.08.2022
Сообщений: 2,066
10.04.2023, 06:27 4
Отлавливайте не Exception, а SQLException.
Может, выведет номер ошибки SQL.
Тогда с помощью поисковой машины найдёте описание ошибки.
А так у вас не совсем ясно, какая кодировка установлена в БД.
0
0 / 0 / 0
Регистрация: 09.04.2023
Сообщений: 26
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
109 / 65 / 25
Регистрация: 08.01.2019
Сообщений: 300
17.04.2023, 10:02 6
Цитата Сообщение от PavelK_1381 Посмотреть сообщение
Почему при создании БД не чувствителен, ведь в запросе имя БД "testDB"?
Как я понимаю, это что-то вроде фишки. То ли конкретно java + postgres, то ли чего-то одного. Название таблицы или поля сложное? snake_case в помощь.
0
0 / 0 / 0
Регистрация: 09.04.2023
Сообщений: 26
17.04.2023, 10:15  [ТС] 7
подскажите а что с кодировкой не так? как это исправить?

org.postgresql.util.PSQLException: �����: ���� ������ "testDB" �� ����������
0
Matthias Ronald Gerard
149 / 209 / 25
Регистрация: 11.08.2022
Сообщений: 2,066
17.04.2023, 12:28 8
Цитата Сообщение от PavelK_1381 Посмотреть сообщение
подскажите а что с кодировкой не так? как это исправить?
Кодировку postgresql для Java надо ставить UTF-8.
Или будет русские буквы не отображать.
Или перекодировать придётся.
Как перекодировать - как-то так
0
17.04.2023, 12:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.04.2023, 12:28
Помогаю со студенческими работами здесь

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

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

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

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

Ошибка при создании таблицы погрешности при сплайн - интерполяции
Возникла ошибка при создании таблицы погрешности при сплайн - интерполяции - функция f(x) - функция...

Ошибка при импорте элементов при создании П/П в Altuim Designer 14
Помогите разобраться в Altuim designer 14 с ошибками при импорте элементов из схемы в ПП: unknown...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru