Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] JdbcCheckup.java: package oracle.jdbc.driver does not exist

Estas en el tema de JdbcCheckup.java: package oracle.jdbc.driver does not exist en el foro de Java en Foros del Web. Gente: Buenas a todos...... estoy tratando de usar MySQL en Java y tengo la misma (mala) suerte que con C++ en mi sistema Windows Al ...
  #1 (permalink)  
Antiguo 02/07/2014, 15:21
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Pregunta JdbcCheckup.java: package oracle.jdbc.driver does not exist

Gente:

Buenas a todos...... estoy tratando de usar MySQL en Java y tengo la misma (mala) suerte que con C++ en mi sistema Windows


Al compilar me dice esto:

Cita:
Compiling JdbcCheckup.java...
JdbcCheckup.java:19: error: package oracle.jdbc.driver does not exist
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
El programa de prueba es ..

Código Java:
Ver original
  1. /*
  2.  * This sample can be used to check the JDBC installation.
  3.  * Just run it and provide the connect information.  It will select
  4.  * "Hello World" from the database.
  5.  */
  6.  
  7. // You need to import the java.sql package to use JDBC
  8. import java.sql.*;
  9.  
  10. // We import java.io to be able to read from the command line
  11. import java.io.*;
  12.  
  13. class JdbcCheckup
  14. {
  15.    public static void main(String args[])
  16.           throws SQLException, IOException
  17.    {
  18.       // Load the Oracle JDBC driver
  19.       DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
  20.  
  21.       // Prompt the user for connect information
  22.       System.out.println("Please enter information to test connection to the database");
  23.       String user;
  24.       String password;
  25.       String database;
  26.  
  27.       user = "root";
  28.       password = "gogogo";        
  29.       database = "tiendax";
  30.  
  31.       System.out.print("Connecting to the database...");
  32.       System.out.flush();
  33.  
  34.       System.out.println("Connecting...");
  35.       Connection conn = DriverManager.getConnection
  36.                         ("jdbc:oracle:oci8:@" + database, user, password);
  37.  
  38.       System.out.println("connected.");
  39.  
  40.       // Create a statement
  41.       Statement stmt = conn.createStatement();
  42.  
  43.       // Do the SQL "Hello World" thing
  44.       ResultSet rset = stmt.executeQuery("select 'Hello World' from dual");
  45.  
  46.       while (rset.next())
  47.          System.out.println(rset.getString(1));
  48.       // close the result set, the statement and connect
  49.       rset.close();
  50.       stmt.close();
  51.       conn.close();
  52.       System.out.println("Your JDBC installation is correct.");
  53.    }
  54.  
  55.    // Utility function to read a line from standard input
  56.    static String readEntry(String prompt)
  57.    {
  58.       try
  59.       {
  60.          StringBuffer buffer = new StringBuffer();
  61.          System.out.print(prompt);
  62.          System.out.flush();
  63.          int c = System.in.read();
  64.          while (c != '\n' && c != -1)
  65.          {
  66.             buffer.append((char)c);
  67.             c = System.in.read();
  68.          }
  69.          return buffer.toString().trim();
  70.       }
  71.       catch(IOException e)
  72.       {
  73.          return "";
  74.       }
  75.    }
  76. }


Y compilo usando este batch:

Código BASH:
Ver original
  1. @ECHO OFF
  2. cd %~dp1
  3. ECHO Compiling %~nx1...
  4. IF EXIST %~n1.class (
  5. DEL %~n1.class
  6. )
  7. javac -Xlint:unchecked %~nx1
  8. IF EXIST %~n1.class (
  9. ECHO Running %~n1...
  10. java -classpath .;"C:\Program Files\Java\mysql-connectorJ\mysql-connector-java-3.0.17-ga-bin.jar" -ea %~n1
  11. )

Tengo el archivo mysql-connector-java-3.0.17-ga-bin.jar en "C:\Program Files\Java\connectorJ-mysql"


Alguna idea ?

Mil gracias por su tiempo!
__________________
Salu2!
  #2 (permalink)  
Antiguo 02/07/2014, 15:24
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: JdbcCheckup.java: package oracle.jdbc.driver does not exist

Y para otra forma de conexion el error que obtengo es distinto pero nunca tengo exito:

Cita:
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:8888/xxxxxxx
Código Java:
Ver original
  1. import java.sql.*;   // Use classes in java.sql package
  2.  
  3. // JDK 7 and above
  4. public class JdbcSelectTest {  // Save as "JdbcSelectTest.java"
  5.    public static void main(String[] args) {
  6.       try (
  7.          // Step 1: Allocate a database "Connection" object
  8.          Connection conn = DriverManager.getConnection(
  9.                "jdbc:mysql://localhost:8888/ebookshop", "myuser", "xxxx"); // MySQL
  10.  
  11.          // Step 2: Allocate a "Statement" object in the Connection
  12.          Statement stmt = conn.createStatement();
  13.       ) {
  14.          // Step 3: Execute a SQL SELECT query, the query result
  15.          //  is returned in a "ResultSet" object.
  16.          String strSelect = "select title, price, qty from books";
  17.          System.out.println("The SQL query is: " + strSelect); // Echo For debugging
  18.          System.out.println();
  19.  
  20.          ResultSet rset = stmt.executeQuery(strSelect);
  21.  
  22.          // Step 4: Process the ResultSet by scrolling the cursor forward via next().
  23.          //  For each row, retrieve the contents of the cells with getXxx(columnName).
  24.          System.out.println("The records selected are:");
  25.          int rowCount = 0;
  26.          while(rset.next()) {   // Move the cursor to the next row
  27.             String title = rset.getString("title");
  28.             double price = rset.getDouble("price");
  29.             int    qty   = rset.getInt("qty");
  30.             System.out.println(title + ", " + price + ", " + qty);
  31.             ++rowCount;
  32.          }
  33.          System.out.println("Total number of records = " + rowCount);
  34.  
  35.       } catch(SQLException ex) {
  36.          ex.printStackTrace();
  37.       }
  38.       // Step 5: Close the resources - Done automatically by try-with-resources
  39.    }
  40. }
__________________
Salu2!
  #3 (permalink)  
Antiguo 03/07/2014, 00:40
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: JdbcCheckup.java: package oracle.jdbc.driver does not exist

En la primera estás intentando usar el driver de MySQL para acceder a un Oracle.

En la segunda si no utilizas unos drivers mysql compatibles con JDBC 4, tienes que añadirlos al DriverManager.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #4 (permalink)  
Antiguo 03/07/2014, 13:27
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: JdbcCheckup.java: package oracle.jdbc.driver does not exist

Hola Xerelo:

Compañero, antes que todo gracias por contestar

-- [SOLUCIONADO]

Mi variable path en Windows la tengo asi:

Cita:
c:\Utils;c:\WWW\php;c:\WWW\php\pear;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin;C:\Python34;C:\cygwin64\bin;"C:\cygwin6 4\usr\include";"C:\Program Files (x86)\GtkSharp\2.12\bin";"C:\WWW\ruby\bin";"C:\Py Projects";C:\Users\USER\AppData\Roaming\npm;"C:\Pr ogram Files (x86)\CMake\bin";C:\Qt\Qt5.3.0;C:\Qt\Qt5.3.0\5.3\m svc2013_64\include;C:\Qt\Qt5.3.0\5.3\msvc2013_64\i nclude\QtCore;"C:\Program Files\Java\jdk1.8.0_05\bin";"C:\Program Files\Java\jdk1.8.0_05\include";"C:\Program Files (x86)\MySQL\Connector ODBC 5.3\";"C:\Program Files (x86)\MySQL\MySQL Connector C++ 1.1.3";"C:\Program Files (x86)\MySQL\MySQL Connector C++ 1.1.3\include";"C:\Program Files (x86)\MySQL\MySQL Connector C++ 1.1.3\lib\opt";"C:\Program Files (x86)\MySQL\MySQL Connector C++ 1.1.3\include\cppconn";"C:\C++";"C:\Program Files (x86)\MySQL\MySQL Connector J\mysql-connector-java-5.1.31-bin.jar"
He creado una variable de entorno tambien llamada CLASSPATH y le puse esto:

Cita:
C:\Program Files (x86)\MySQL\MySQL Connector J\mysql-connector-java-5.1.31-bin.jar
Hasta ahora nada.........

Y he bajado estos 2 connectores .jar pero ni idea cual debo usar y porque:

Cita:
C:\Program Files\Java\connectorJ-mysql\mysql-connector-java-3.0.17-ga-bin.jar
C:\Program Files (x86)\MySQL\MySQL Connector J\mysql-connector-java-5.1.31-bin.jar // este fue el que sirvió con JRE 8

EDIT: pude solucionar ... con JRE8 la unica fue con el conector-J 5.x.xx

Toco cambiar el parametro --classpath de javac para que coja la ultima version del conector:

Código BASH:
Ver original
  1. @ECHO OFF
  2. cd %~dp1
  3. ECHO Compiling %~nx1...
  4. IF EXIST %~n1.class (
  5. DEL %~n1.class
  6. )
  7. javac -Xlint:unchecked %~nx1
  8. IF EXIST %~n1.class (
  9. ECHO Running %~n1...
  10. java -classpath .;"C:\Program Files (x86)\MySQL\MySQL Connector J\mysql-connector-java-5.1.31-bin.jar" -ea %~n1
  11. )
__________________
Salu2!

Última edición por Italico76; 03/07/2014 a las 15:09
  #5 (permalink)  
Antiguo 03/07/2014, 15:18
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: JdbcCheckup.java: package oracle.jdbc.driver does not exist

Dejo como RECORD por si a alguien le sirve:


Con JRE 8 me funcionó de esta forma:

Código Java:
Ver original
  1. import java.sql.*;  
  2.  
  3. ..
  4.  
  5. String bd = "nombre db";
  6. String login = "usuario";
  7. String password = "pass";
  8. String url = "jdbc:mysql://localhost/"+bd;
  9.  
  10. Connection conn = DriverManager.getConnection(url, login, password);


Sin embargo fue imposible me funcionara asi:

Código Java:
Ver original
  1. DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());

Pues siempre decia "package oracle.jdbc.driver does not exist" y obviamente esta todo bien porque me funciona con getConnection()
__________________
Salu2!
  #6 (permalink)  
Antiguo 04/07/2014, 00:26
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: JdbcCheckup.java: package oracle.jdbc.driver does not exist

Primero debes indicar siempre con qué versiones estás trabajando, lo que funciona para la 7 no siempre funcionará para la 8.

Ahora lo de Oracle

En tu primera pregunta parecía que usabas una BBDD de Oracle y como no te funcionaba probaste con una MySQL, pero por tus respuestas posteriores me da la impresión de que sólo tienes una MySQL y que no tienes claro la parte de cómo funciona JDBC.

BBDD MySQL -> Driver http://www.mysql.com/products/connector/
BBDD Oracle -> Driver http://www.oracle.com/technetwork/da...ex-091264.html
BBDD
BBDD DB2 -> Driver http://sourceforge.net/projects/jt400/
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #7 (permalink)  
Antiguo 04/07/2014, 06:20
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: JdbcCheckup.java: package oracle.jdbc.driver does not exist

Gracias @Xerelo ... como MySQL es de Oracle... eso me causo confusion

Lo arreglé en 1 minuto:

Código Java:
Ver original
  1. import java.sql.*;
  2.  
  3. class JdbcDriverManagerRegisterDriver
  4. {
  5.    public static void main(String args[])
  6.           throws SQLException
  7.    {
  8.       // Load the MySQL JDBC driver
  9.       DriverManager.registerDriver(new com.mysql.jdbc.Driver());
  10.      
  11.       String dbDriver = "com.mysql.jdbc.Driver";
  12.       String dbDBase  = "xxxxx";
  13.       String dbUser   = "xxx";
  14.       String dbPasswd = "xxxxxx";
  15.       String dbURL    = "jdbc:mysql://localhost/";
  16.  
  17.       System.out.print("Connecting to the database...");
  18.       System.out.flush();
  19.  
  20.       System.out.println("Connecting...");
  21.       Connection conn = DriverManager.getConnection
  22.             (dbURL        + dbDBase +
  23.              "?user="     + dbUser +
  24.              "&password=" + dbPasswd);
  25.  
  26.       System.out.println("connected.");
  27.  
  28.       // Create a statement
  29.       Statement stmt = conn.createStatement();
  30.  
  31.       // Do the SQL "Hello World" thing
  32.       ResultSet rset = stmt.executeQuery("select 'Hello World' from dual");
  33.  
  34.       while (rset.next())
  35.          System.out.println(rset.getString(1));
  36.       // close the result set, the statement and connect
  37.       rset.close();
  38.       stmt.close();
  39.       conn.close();
  40.       System.out.println("Your JDBC installation is correct.");
  41.    }
  42.  
  43.  
  44. }

Las fallas obviamente estaban en referenciar los drivers de ORACLE:

Cita:
DriverManager.registerDriver(new com.mysql.jdbc.Driver());

...
...

Connection conn = DriverManager.getConnection
(dbURL + dbDBase +
"?user=" + dbUser +
"&password=" + dbPasswd);

__________________
Salu2!

Última edición por Italico76; 04/07/2014 a las 07:52

Etiquetas: exist, mysql, package, programa, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:53.