powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Java JDBC создание базы данных
21 сообщений из 21, страница 1 из 1
Java JDBC создание базы данных
    #33223476
yelena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Позволяет ли JDBC подключиться к sql-серверу и создать базу данных?
В книгах пример найти не удалось.
Создается впечатление, что не позволяет.
Если это действительно так, то подскажите варианты создания базы данных из приложения.
Наверное, можно посредством командной строки.
Какие еще имеются варианты?
...
Рейтинг: 0 / 0
Java JDBC создание базы данных
    #33225496
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
создание базы данных это всего лишь выполнение сервером SQL команды CREATE
DATABASE. Если сервер поддерживает эту команду (а она есть в ANSI SQL) то её
можно выполнить хоть из ждбц хоть из склконсоли


Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Java JDBC создание базы данных
    #33226754
livan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конечно позволяет !
можешь попробовать что нибудь в таком плане.
Код: plaintext
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.
 public   static  Connection createTable( Connection connection ,
                                                   String username ,
                                                   String password ,
                                                   String tableName ,
                                                   String tableFormat ,
                                                   String[] tableRows  ) {
  
   try  {
       statement.execute( " DROP TABLE " + tableName ) ;
  }
   catch ( SQLException sqle ) 
      { sqle.printStackTrace() ; }

   try  {
      Statement statement = connection.createStatement() ;
      String createCommand = " CREATE TABLE " + tablename + " " + tableFormat ;
      statement.execute( createCommand ) ;

      String insertPrefix = " INSERT INTO " + tableName + " VALUES " ;
       for (  int  i= 0 ; i<tableRows.length; i++ ) {
          statement.execute( insertPrefix + tableRows[i] ) ;
      }

       return  connection ;
  }
   catch ( SQLException sqle ) 
      { sqle.printStackTrace() ; }
...
Рейтинг: 0 / 0
Java JDBC создание базы данных
    #33226921
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yelenaПозволяет ли JDBC подключиться к sql-серверу и создать базу данных?
В книгах пример найти не удалось.
Создается впечатление, что не позволяет.
Если это действительно так, то подскажите варианты создания базы данных из приложения.
Наверное, можно посредством командной строки.
Какие еще имеются варианты?

Разные СУБД по разному трактуют термин "база данных". К
примеру то что в PostgreSQL является базой , в Oracle
является схемой в контекте экземпляра базы.
...
Рейтинг: 0 / 0
Java JDBC создание базы данных
    #33226945
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton yelenaПозволяет ли JDBC подключиться к sql-серверу и создать базу данных?
В книгах пример найти не удалось.
Создается впечатление, что не позволяет.
Если это действительно так, то подскажите варианты создания базы данных из приложения.
Наверное, можно посредством командной строки.
Какие еще имеются варианты?

Разные СУБД по разному трактуют термин "база данных". К
примеру то что в PostgreSQL является базой , в Oracle
является схемой в контекте экземпляра базы.
Скорее "... в Oracle является схемой в контексте базы данных"
...
Рейтинг: 0 / 0
Java JDBC создание базы данных
    #33227197
Евгений Путилин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
livanКонечно позволяет !
можешь попробовать что нибудь в таком плане.
String createCommand = " CREATE TABLE " + tablename + " " + tableFormat ;

То что ты написал позволяет но спашивали совсем другой вопрос :-)
...
Рейтинг: 0 / 0
Java JDBC создание базы данных
    #33227215
Евгений Путилин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1024
создание базы данных это всего лишь выполнение сервером SQL команды CREATE DATABASE. Если сервер поддерживает эту команду (а она есть в ANSI SQL) то её можно выполнить хоть из ждбц хоть из склконсоли

Вопрос как выполнить из JDBC? Example please.
...
Рейтинг: 0 / 0
Java JDBC создание базы данных
    #33227306
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для Cloudscape:

conn.getConnection("jdbc:derby:net://localhost:1527/'c:\work\db\testdb';crea
te=true");

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Java JDBC создание базы данных
    #33227517
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или как в приведённом выше примере но вместо CREATE TABLE ... написать
CREATE DATABASE ... в соответствии с синтаксисом используемого сервера.


Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Java JDBC создание базы данных
    #33227836
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1024
или как в приведённом выше примере но вместо CREATE TABLE ... написать
CREATE DATABASE ... в соответствии с синтаксисом используемого сервера.


Posted via ActualForum NNTP Server 1.2
ну попробуй бд оракла так создать...
на винде например :)
...
Рейтинг: 0 / 0
Java JDBC создание базы данных
    #33227840
yelena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем!
Но...
Прочитайте еще раз мой вопрос.

Чтобы подать команду create database я сначала должна подключиться к серверу!
В стандарте подключения JDBC имя базы уже должно быть указано.
А каким образом я подключусь к несуществующей базе???
...
Рейтинг: 0 / 0
Java JDBC создание базы данных
    #33227897
gaper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ответ полностью определяется той базой, которую Вы используете. Например,
MS SQL - "да", но Oracle - "нет". Также он зависит от Вашего понимания этого термина.

В общем случае, думаю, Вы дали правильный ответ: "Нет".
...
Рейтинг: 0 / 0
Java JDBC создание базы данных
    #33228677
Евгений Путилин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gaperОтвет полностью определяется той базой, которую Вы используете. Например,
MS SQL - "да", но Oracle - "нет". Также он зависит от Вашего понимания этого термина.

Что за термин используется? RDB или RDBMS, или еще какой нибуть термин?

gaper
В общем случае, думаю, Вы дали правильный ответ: "Нет".

Согласен JDBC не содержит в себе декларирования создания DB. И каждй вендор DB, несет внутри себя расширения которые могут позволить это сделать.
...
Рейтинг: 0 / 0
Java JDBC создание базы данных
    #33228756
AciD_v
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из JDBC можно получить Connection к MSSQL Server 2000 без указания имени БД.
Только для этого нужно установить соответствующий JDBC-driver (по-моему, он идет в MSSQL Server 2000 Service Pack 3). Там url к БД имеет вид:

Код: plaintext
jdbc:microsoft:sqlserver://host: 1433 

То есть без указания самой БД. А потом можно выбрать созданную с помощью запроса БД с помощью setCatalog(String).

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
     ...
     String _driverClassName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
     String _url = "jdbc:microsoft:sqlserver://hostname:1433";
     String _userName = "user";
     String _password = "magic word";
     String _db = "myDB";

      try  {
       Driver _driver = (Driver) Class .forName(_driverClassName).newInstance();
       DriverManager.registerDriver(_driver);

       Connection _conn = DriverManager.getConnection(_url, _userName, _password);
       
       // Создаем БД
       Statement _stmnt = _conn.createStatement("CREATE DATABASE " + _db);
       _stmnt.execute();
       
       // Выбираем БД
       _conn.setCatalog(_db);

     }  catch  (Exception e) {
       e.printStackTrace();
     }
...
Рейтинг: 0 / 0
Java JDBC создание базы данных
    #33228862
gaper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Евгений Путилин gaperОтвет полностью определяется той базой, которую Вы используете. Например,
MS SQL - "да", но Oracle - "нет". Также он зависит от Вашего понимания этого термина.

Что за термин используется? RDB или RDBMS, или еще какой нибуть термин?

Имелось в виду соответствие терминов jdbc с терминологией конкретного сервера базы данных. В терминах jdbc, иногда, можно создать catalog базы данных, но саму базу - нет. Например, jdbc-catalog соответствует MS SQL базе данных.

В свою очередь, автор мог подразумевать:
RDBS (вряд ли)

RDB = database

database catalog
...
Рейтинг: 0 / 0
Java JDBC создание базы данных
    #33229263
AciD_v
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 yelena:

Какой сервер БД вы используете?
...
Рейтинг: 0 / 0
Java JDBC создание базы данных
    #33230439
yelena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Acid_v:
сервер MySQL

спасибо за правильное понимание поставленного вопроса и исчерпывающий ответ

база данных действительно может быть создана таким образом
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
        String URL = "jdbc:mysql://localhost/";
        String Driver = "com.mysql.jdbc.Driver";
        String User = "root";
        String Password = "";

         try  {
             Class .forName(Driver);
            java.util.Properties connectionProperties =  new  java.util.Properties();
            connectionProperties.put("driver", Driver);
            connectionProperties.put("user", User);
            connectionProperties.put("password", Password);
            Connection con = DriverManager.getConnection(URL, connectionProperties);
            
            String query = "CREATE DATABASE my_test";

            PreparedStatement ps = con.prepareStatement(query);
            ps.executeUpdate();            
        }  catch  (Exception ex) {
            ex.printStackTrace();
        }
...
Рейтинг: 0 / 0
Java JDBC создание базы данных
    #33230641
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это не база данных...
Это блокнот!
...
Рейтинг: 0 / 0
Java JDBC создание базы данных
    #33233483
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот код

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
conn = DriverManager.getConnection("jdbc:firebirdsql:192.168.0.9/3050:d:/temp/telco-prob/telco.gdb","sysdba","masterkey");
DatabaseMetaData metaData = conn.getMetaData();
ResultSet rs = metaData.getTables( null ,  null , "%",  new  String[] {"TABLE"});
Array list =  new  ArrayList();

 while (rs.next()) {
  list.add(" " + rs.getString("TABLE_NAME"));
}

потом страная вещь получается ежели попробовать получить имена столбцов конкретной таблицы

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
 for  ( int  i =  0 ; i < list.size(); i++) {
  String s = (String) list.get(i);
  rs = metaData.getColumns( null ,  null , s,  null );

   while (rs.next()) {
    System.out.println(rs.getString("COLUMN_NAME"));
  }
  rs.close();
}

даже внутрь цикла while не заходит
а вот если написать конкретное имя таблицы то работает нормально

Код: plaintext
1.
2.
s = "TB_CONS";
rs = metaData.getColumns( null ,  null , s,  null );

или

Код: plaintext
1.
rs = metaData.getColumns( null ,  null , "TB_CONS",  null );
то работает

я пробовал и Strings = list.get(i).toString()
ежели list.get(i).toString() или (String) list.get(i) печатать в консоль то нормальные
имена таблиц а подставляешь в rs = metaData.getColumns(null, null, s, null);
не работает
...
Рейтинг: 0 / 0
Java JDBC создание базы данных
    #33233611
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
llemingВот код

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
conn = DriverManager.getConnection(/* ... */);
DatabaseMetaData metaData = conn.getMetaData();
ResultSet rs = metaData.getTables( null ,  null , "%",  new  String[] {"TABLE"});
Array list =  new  ArrayList();

 while (rs.next()) {
  list.add(/*тут->*/" " + rs.getString("TABLE_NAME"));
}

зачем здесь пробел?
...
Рейтинг: 0 / 0
Java JDBC создание базы данных
    #33233947
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тимм спасибо
я примечик с книжки взял и не мог никак понять
где же я ошибся :)
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Java JDBC создание базы данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]