Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с созданием новой базы данных 
:(
    Опции темы
WhiteDream
Дата 27.3.2006, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 27.3.2006

Репутация: нет
Всего: нет



Взял пример из книги и вписал его Netbeans 5.0
Код
import java.net.URL;
import java.sql.*;
import java.io.*;

class Simple_Select {

 public static void main (String args[]) {
 
String url = "jdbc:odbc:dBase";
 String query = "SELECT * FROM my_table"; 
 try {
 Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver");
 DriverManager.setLogStream(System.out); 
 Connection con = DriverManager.getConnection (
 url, "", ""); 
  checkForWarning (con.getWarnings ()); 
 DatabaseMetaData dma = con.getMetaData ();
 Statement stmt = con.createStatement ();
  ResultSet rs = stmt.executeQuery (query);

 // Показать все колонки и ряды из набора результатов
 dispResultSet (rs);
 // Закрыть результирующий набор
 rs.close();
 // Закрыть оператор
 stmt.close();
 // Закрыть соединение
 con.close();
 }
 catch (SQLException ex) {
 while (ex != null) {
  ex = ex.getNextException ();
 }
 }
 catch (java.lang.Exception ex) {
 ex.printStackTrace ();
 }
 }
 private static boolean checkForWarning (SQLWarning warn) 
 throws SQLException {
 boolean rc = false;

 if (warn != null) {
 System.out.println ("\n *** Warning ***\n");
 rc = true;
 while (warn != null) {
 warn = warn.getNextWarning ();
 }
 }
 return rc;
 }
 //----------------------------------
 // dispResultSet
 // Показать таблицу полученных результатов
 //----------------------------------
 private static void dispResultSet (ResultSet rs)
 throws SQLException, IOException
 { 
     
 int i, length, j;
 String cp1 = new String("Cp1251"); 
  ResultSetMetaData rsmd = rs.getMetaData ();
 int numCols = rsmd.getColumnCount ();
 // Показать заголовок столбца
 for (i=1; i<=numCols; i++) {
 if (i > 1) System.out.print(",");
 //System.out.print(rsmd.getColumnLabel(i));
 }
 System.out.println("");
 
 boolean more = rs.next ();
 while (more) {

 // Цикл по столбцам
 
 for (i=1; i<=numCols; i++) { 

InputStream str1 = rs.getUnicodeStream(i); 
     byte str2[];
     byte str3[]; 
     int sizeCol = rsmd.getColumnDisplaySize(i);
     str2 = new byte[sizeCol+sizeCol]; 
     str3 = new byte[sizeCol+sizeCol];
     length = str1.read(str2); 
    
     int k=1;    
     for (j=1; j<sizeCol*2; j++) {
        if (str2[j] != 0) { 
            str3[k]=str2[j]; k=k+1; } } 
     
     String str = new String(str3,cp1);
     System.out.print(str);    
 }
 System.out.println("");

 // Загрузка следующего ряда в наборе

 more = rs.next ();
 }
 }
}

Netbeans выдает warning на следующие объявления:
DriverManager.setLogStream(System.out);
InputStream str1 = rs.getUnicodeStream(i);

При попытке запустить выдает ошибки:
Код

init:
deps-jar:
Compiling 1 source file to C:\Documents and Settings\Demon\Simple Select\build\classes
Note: C:\Documents and Settings\Demon\Simple Select\src\Simple_Select.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
compile:
run:
DriverManager.getConnection("jdbc:odbc:dBase")
    trying driver[className=sun.jdbc.odbc.JdbcOdbcDriver,sun.jdbc.odbc.JdbcOdbcDriver@19821f]
*Driver.connect (jdbc:odbc:dBase)
JDBC to ODBC Bridge: Checking security
No SecurityManager present, assuming trusted application/applet
JDBC to ODBC Bridge 2.0001
Current Date/Time: Tue Mar 28 01:50:04 YEKST 2006
Loading JdbcOdbc library
Allocating Environment handle (SQLAllocEnv)
hEnv=46666400
Allocating Connection handle (SQLAllocConnect)
hDbc=46666568
Connecting (SQLDriverConnect), hDbc=46666568, szConnStrIn=DSN=dBase
RETCODE = -1
ERROR - Generating SQLException...
SQLException: SQLState(IM002) vendor code(0)
java.sql.SQLException: [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию
        at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)
        at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)
        at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3074)
        at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323)
        at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174)
        at java.sql.DriverManager.getConnection(DriverManager.java:525)
        at java.sql.DriverManager.getConnection(DriverManager.java:171)
        at Simple_Select.main(Simple_Select.java:20)
Closing connection (SQLFreeConnect), hDbc=46666568
Closing environment (SQLFreeEnv), hEnv=46666400
getConnection failed: java.sql.SQLException: [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию
BUILD SUCCESSFUL (total time: 2 seconds)

В чем проблема?
PM MAIL   Вверх
LSD
Дата 27.3.2006, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15719
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Проблема в том что у тебя нет ODBC алиаса dBase. Создай его и попробуй сконнектится снова.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
powerOn
Дата 28.3.2006, 07:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 47
Всего: 159



Цитата

Проблема в том что у тебя нет ODBC алиаса dBase. Создай его и попробуй сконнектится снова.


А создать его можно в Панель Управления -> Администрирование -> Источники данных (ODBC). smile


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
WhiteDream
Дата 28.3.2006, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 27.3.2006

Репутация: нет
Всего: нет



Я поставил сервер Mysql 4.1 и Mysql control center, скачал mysql-connector-java-3.1.12-bin.jar.
С помощью control center замутил новую базу my_sql на root@localhost:3306, устновил пароль.
Затем в NetBeans зашел в Runtime, установил драйвер Mysql путем указания на мой mysql-connector
В драйвере написал: URL jdbc:mysql://localhost:3306/my_sql, user: root и пароль: password
Он нашел эту базу, подсоединился к ней и создал таблицу my_table.
Потом я переписал в программе следующие строки
Код
String url = "jdbc:mysql://localhost:3306/my_sql";
String query = "SELECT * FROM my_table"; 
Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection(url, "root", "password");


Теперь в консоли выводиться следующее
Код
init:
deps-jar:
Compiling 1 source file to C:\Documents and Settings\Demon\Simple Select\build\classes
compile-single:
run-single:
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:164)
        at Simple_Select.main(Simple_Select.java:14)
BUILD SUCCESSFUL (total time: 1 second)

Я извиняюсь за лаймерский вопрос, но что вообще должно вывестить в консоле, если все сделать правильно?
PM MAIL   Вверх
LSD
Дата 28.3.2006, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15719
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Надо писать не Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver"); а Class.forName("com.mysql.jdbc.Driver");.
И нужно довавить библиотеку mysql-connector-java-3.1.12-bin.jar в твой проект.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0457 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.