Java - MySQL+Java y JDBC: erro de Not suitable driver

 
Vista:

MySQL+Java y JDBC: erro de Not suitable driver

Publicado por luiyi (16 intervenciones) el 05/04/2006 23:42:20
Saludos,

Tratando de hacer una conexión java-mysql obtengo el error: Not suitable driver luego de haber hecho lo siguiente.

Instalé el driver jdbc para mysql en version 3.1.12 y lo registré en el classpath como se indica en varios manuales.

Luego, en Netbeans 4.1 y usando MySQL 4 voy a la sección de Runtime y en Databases agrego el driver para mysql sin ningun problema, y luego para probar que todo ande, hice una conexión nueva hacia el servidor mysql con usuario y password correspondiente obteniendo una conexion exitosa.

Luego en la sección del proyecto, en Librerias, agregué el .jar del driver de mysql y luego en una formita simple para un login que estoy haciendo ingreso este codigo para la conexion: (extracto del total del codigo)

Definí al inicio variables string con los siguientes contenidos:

static String bd = "agendita";
static String login = "bingo";

static String password = "holahola";
static String url = "jdbc:mysql://servidor.com"+bd; <--servidor.com es el nombre de host de mi servidor local

Luego,

public static void main(String args[]) throws Exception {

Connection conn = null;
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection(url,login,password);

if (conn!=null)
{
JOptionPane.showMessageDialog(null,"Conexion a la BD"+url,"Conexion",JOptionPane.INFORMATION_MESSAGE);
conn.close();
}

}

catch(SQLException ex)
{
JOptionPane.showMessageDialog(null,ex,"Error de conexión1",JOptionPane.INFORMATION_MESSAGE);

}

catch(ClassNotFoundException ex)
{
JOptionPane.showMessageDialog(null,ex,"Error de conexión2",JOptionPane.INFORMATION_MESSAGE);
}

java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Login().setVisible(true);
}
});
}

El programa no devuelve ningun error al momento de compilar y todo anda bien, pero al momento de la carga del form, me devuelve la excepcion No.1 con el mensaje Not Suitable Driver.

Me gustaria saber que está mal en esta implementación pues resulta, que solo me ocurre bajo el netbeans; por aparte hice un codigo de conexion en el notepad con la misma conexion aunque dejando de lado la parte visual y devolviendo solo mensajes de consola, el programa devuelve resultados exitosos, y solo truena al hacerlo en el modo visual con la forma y bajo netbeans.

Gracias por la ayuda.

Luiyi.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:MySQL+Java y JDBC: erro de Not suitable driver

Publicado por manru (161 intervenciones) el 06/04/2006 00:11:08
Hola

Class.forName("com.mysql.jdbc.Driver").newInstance();

quita el newInstance() y prueba así...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:MySQL+Java y JDBC: erro de Not suitable driver

Publicado por luiyi (16 intervenciones) el 06/04/2006 00:16:27
ya, he quitado lo del .newInstance() y nada...me devuelve lo mismo. Alguna otra idea?

gracias por tu ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:MySQL+Java y JDBC: erro de Not suitable driver

Publicado por manru (161 intervenciones) el 06/04/2006 00:25:36
Hola...

Bueno... desde donde estas ejecutando el programa?
desde netBeans o desde la linea de comandos?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:MySQL+Java y JDBC: erro de Not suitable driver

Publicado por luiyi (16 intervenciones) el 06/04/2006 00:30:29
desde el netbeans. el otro programita que menciono que corro en terminal es otro codigo que solo testea la conexion, pero el que estoy tratando de hacer andar estoy haciendolo en betbeans. Como menciono, logro conexion en la seccion databases de la pestaña runtime, y esta añadido el driver tanto ahi, como en la seccion librerias de la pestaña proyectos, pero no quiere!!!!! aaaaargh! me va a volver loco :D

que me sugieres?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:MySQL+Java y JDBC: erro de Not suitable driver

Publicado por manru (161 intervenciones) el 06/04/2006 00:39:41
Lo que sucede es que el driver no existe en el contexto de la aplicacion cuando lo ejecutas desde el netbeans. (aunque lo hayas agregado)

Ahora no recuerdo como agregar el jar de mysql, pero no es dificil...
Si no me equivoco, en el proyecto tienes una carpeta que se llama lib o libs, si es asi copia el jar a esa carpeta y refresca para que tome los cambios.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:MySQL+Java y JDBC: erro de Not suitable driver

Publicado por luiyi (16 intervenciones) el 06/04/2006 00:46:19
Bien, en efecto el .jar del driver está añadido en la lib del proyecto y aun asi, compilando todo el proyecto, compilando solo la forma, incluso cerrando el netbeans volviendolo a abrir y rehaciendo la conexion, he probado de varias formas y no conecta bajo netbeans :(
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:MySQL+Java y JDBC: erro de Not suitable driver

Publicado por manru (161 intervenciones) el 06/04/2006 01:00:57
Evidentemente es un problema de la configuracion del netbeans.
De todas formas intenta esto.

Abre una ventana de comandos cmd y escribe lo siguiente

java -classpath c:\dir\mysql.jar;c:\proyecto\bin mipaquete.miclaseMain

donde debes reemplazar
c:\dir\mysql.jar por la ruta completa y el nombre del jar en donde esta el driver de mysql
c:\proyecto\bin por la ruta completa al primer paquete de tu proyecto.
Suponiendo que tu proyecto este en esta gerarquia "c:\proyecto\bin\com\prueba\clase.class"
debes utilizar la ruta "c:\proyecto\bin\" (cambia a la que tu tienes alli)

mipaquete.miclaseMain la debes reemplazar por la clase que tenga el metodo main del programa, en el ejemplo anterior sería algo como :"com.prueba.clase"

Intenta de esa forma a ver que sucede.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:MySQL+Java y JDBC: erro de Not suitable driver

Publicado por luiyi (16 intervenciones) el 06/04/2006 03:05:10
bien pues, seguimos en la misma. Como un dato extra te digo, corro netbeans 4.1 en Linux sobre un Centos 4.2. En teoria y siguiendo aquello de "make once, run everywhere" del java, no deberia haber ninguna diferencia entre sistemas para este asunto del netbeans, e incluso tomé las precauciones pertinentes en cuanto a variables de entorno y demás del propio java y el mismo driver de mysql por lo que se me hace extremadamente raro el que el codigo basado en consola funcione al 100% y el codigo del netbeans no. Voy a pasar el proyecto a un equipo con windows con el mismo netbeans 4.1 y vamos a ver si es respectivo del sistema el problema. No te alejes mucho del tema asi te comento vale?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:MySQL+Java y JDBC: erro de Not suitable driver

Publicado por luiyi (16 intervenciones) el 06/04/2006 05:25:12
venga que esto ya es inaudito!!!!!! :@ Mira, pase todo a windows, repeti todo el proceso: path de java para javac y java a la variable path; luego la classpath con dirección al driver .jar de mysql; he hecho nuevamente la BD sencillita en mysql 5 bajo windows , he hecho el mismo codiguito que corri en modo consola en linux ahora en windows y me responde la conexion exitosa!!!!!

Pero al irme al netbeans 4.1 abri el proyecto, metí el driver e hice una conexion en la seccion Databases de Runtime, fui a la sección de Proyecto meti el driver .jar en la seccion Libs compile el codigo: 0 errores, corro el form y voilá: error: Driver not suitable.

Dos sistemas operativos, mismo proceso, conexiones via consola exitosas, conexiones via netbeans un desastre, tio esto es un desastre!!!!!

Si me puedes echar una manito, te agradezco.

Saludos,

Luiyi.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:MySQL+Java y JDBC: erro de Not suitable driver

Publicado por manru (161 intervenciones) el 06/04/2006 05:59:28
Ehh.. bien... Tenia la sensacion de que el problema estaba en netBeans...
De todas maneras, yo tambien lo utilizo, lamentablemente ahora estoy utilizando una version vieja (3.5.1) porque el proyecto que estoy realizando debe trabajar con el JRE 1.3.1 de IBM y las nuevas versiones de netBeans requieren 1.4 como minimo.

Pero, de todas formas, debes estar olvidando un paso en la configuracion.
Si mal no recuerdo a partir de las versiones 4.x, netBeans utiliza ANT para realizar todo el proceso de build y demas etc. con lo cual es comprensible que las cosas se compliquen un poco.
Voy a ver si mañana investigo un poco en la oficina, ya que allí si lo tengo instalado

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:MySQL+Java y JDBC: erro de Not suitable driver

Publicado por luiyi (16 intervenciones) el 06/04/2006 06:01:47
bien, te agradezco la ayuda, y estoy al tanto.

muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:MySQL+Java y JDBC: erro de Not suitable driver

Publicado por chuidiang (950 intervenciones) el 06/04/2006 09:53:19
Hola:

Prueba a poner esta linea antes de intentar usar el driver:

// Este driver está en mysql-connector-java-3.1.7-bin.jar
DriverManager.registerDriver(new org.gjt.mm.mysql.Driver());

// Establecemos la conexión con la base de datos.
Connection conexion = DriverManager.getConnection (
"jdbc:mysql://localhost/prueba","root", "la_clave");

He puesto los driver que uso yo de mysql. Quizás tengas que cambiar algo por el que tengas tú exactamente. La linea que quita el error de no suitable driver es la de registerDriver()

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:MySQL+Java y JDBC: erro de Not suitable driver

Publicado por manru (161 intervenciones) el 06/04/2006 14:46:24
Hola
Eso no es practico...
Estas forzando a que la clase no compile si es que el driver no existe.
Y por otro lado, si deseabas darle la oportunidad al usuario para que conectara a, por ejemplo un PGSQL o MSSQL para trabajar, ya no lo podrás hacer.

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:MySQL+Java y JDBC: erro de Not suitable driver

Publicado por chuidiang (950 intervenciones) el 06/04/2006 15:21:20
Hola:

Es simplemente la idea. El caso es que yo tenía el mismo error y se arregló con el registerDriver(). Se puede arreglar como haga falta.

Por ejemplo, cambiar el new por Class.forName(...).newInstance() como se hacia en el código del primero post. Asi sí compilará, pero saltará una excepción si no existe que se puede capturar.

Antes de hacer eso, se puede preguntar por el tipo de driver/base de datos, cosa que tampoco se hacía en el código inicial.

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:MySQL+Java y JDBC: erro de Not suitable driver

Publicado por manru (161 intervenciones) el 06/04/2006 16:10:25
Luiyi:

Probe en NetBeans 4.1 y lamento decirte que no tuve ningun problema.
Funcionó todo perfectamente, asi que, creo que el problema está en la configuracion del NetBeans.

Te digo que fue lo que hice para probar:

En la zolapa Projects del netBeans, hay una carpeta que dice "Libraries" ahi, boton derecho del mouse, aparece un menu que te da a elegir, yo seleccioné "Add Library",
Sale un cartel que tiene un boton que dice "Manage Libraries", apreto en ese botón.
Aparece otro dialogo en donde eligo "New Library", aparece un dialogo preguntando el nombre. le pongo PGSQL (porque aqui tengo PGSQL),
Una vez que aparece en el arbol de la izquierda la selecciono y luego presiono el botón
"Add Jar/Folder" alli busco el jar correspondiente al Driver. Y ya está!!!
Le doy OK para guardar todo y vamos a probar...

Hice una pequeña clase para saber si puedo levantar el driver cuando apreto F6 en el netbeans...

public class Main {

/** Creates a new instance of Main */
public Main() {
}

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
try {
Class cls = Class.forName("org.postgresql.Driver");
System.out.println(cls.getName());
}catch(Exception e) {
e.printStackTrace();
}
}

}

Y funciona bien... si miras el código hay un System.out.println(cls.getName());
que escribe en el sdtout el nombre de la clase creada...
Si el driver no se puede crear, eso sería nulo o tendriamos una Exception

Bueno espero te sirva..

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:MySQL+Java y JDBC: erro de Not suitable driver

Publicado por luiyi (16 intervenciones) el 06/04/2006 19:39:23
Ya bien, hice lo que dices de la sección library y no........que no........ahora voy a windows a probar lo mismo y posteo en unos minutos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:MySQL+Java y JDBC: erro de Not suitable driver

Publicado por luiyi (16 intervenciones) el 06/04/2006 21:09:46
bien instale netbeans 5.0 y sigue el mismo problema. Tengo conexion exitosa en la seccion Runtime luego de agregar en Databases el driver de MySQL y he incluido el driver en la seccion de Project tanto como libreria en libs como Jar en libs y nada........

Posteo el codigo del login.java que es la formita que tengo para prueba que tanto falla....La verdad no estoy usando el codigo de conexion en el Main.java sino que estoy usando esta forma login.java como la conexion hacia la bd....la idea que estoy usando es que la forma al momento de cargarse haga una conexion a la BD para luego hacer una autenticacion por medio de clave y usuario que el usuario ingrese..aunque no se si en java es necesario que siempre la Main.java se la que cargue todo el proyecto.....soy un novatazo de cuarta :D...quiza eso sea el problema de que no logre conexion ni a palos pero si me corrigen les agradezco:

* Login.java
*
* Created on 4 de abril de 2006, 13:22
*/

package tienda2;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.sql.*;

/**
*
* @author luis
*/
public class Login extends javax.swing.JFrame {
public String salida;
public String cadena;
static String bd = "agendita";
static String login = "bingo";

static String password = "holahola";
static String url = "jdbc:mysql://192.168.0.1"+bd;



/** Creates new form Login */
public Login() {
initComponents();
setSize(400,300);

}

/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc=" Generated Code ">
private void initComponents() {
etqUsuario = new javax.swing.JLabel();
etClave = new javax.swing.JLabel();
campoUsuario = new javax.swing.JTextField();
campoClave = new javax.swing.JTextField();
botonAceptar = new javax.swing.JButton();
botonCancelar = new javax.swing.JButton();

getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Autenticaci\u00f3n");
etqUsuario.setText("Usuario:");
getContentPane().add(etqUsuario, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 70, 60, 40));

etClave.setText("Clave:");
getContentPane().add(etClave, new org.netbeans.lib.awtextra.AbsoluteConstraints(80, 120, 50, 30));

getContentPane().add(campoUsuario, new org.netbeans.lib.awtextra.AbsoluteConstraints(140, 80, 160, 30));

getContentPane().add(campoClave, new org.netbeans.lib.awtextra.AbsoluteConstraints(140, 120, 160, 30));

botonAceptar.setText("Aceptar");
botonAceptar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
botonAceptarActionPerformed(evt);
}
});

getContentPane().add(botonAceptar, new org.netbeans.lib.awtextra.AbsoluteConstraints(100, 180, -1, -1));

botonCancelar.setText("Cancelar");
botonCancelar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
botonCancelarActionPerformed(evt);
}
});

getContentPane().add(botonCancelar, new org.netbeans.lib.awtextra.AbsoluteConstraints(200, 180, -1, -1));

pack();
}
// </editor-fold>

private void botonAceptarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if (campoUsuario.getText().equals( "") || campoClave.getText().equals("")){
salida="Debe ingresar la información requerida para iniciar sesión"+
"\nVerifique que los campos hayan sido llenados correctamente";

JOptionPane.showMessageDialog(null,salida,"Autenticación del sistema",
JOptionPane.INFORMATION_MESSAGE);}





}

private void botonCancelarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
System.exit(0);
}

/**
* @param args the command line arguments
*/
public static void main(String args[]) throws Exception {

Connection conn = null;
try{
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(url,login,password);

if (conn!=null)
{
JOptionPane.showMessageDialog(null,"Conexion a la BD"+url,"Conexion",JOptionPane.INFORMATION_MESSAGE);
conn.close();
}

}

catch(SQLException ex)
{
JOptionPane.showMessageDialog(null,ex,"Error de conexión1",JOptionPane.INFORMATION_MESSAGE);

}

catch(ClassNotFoundException ex)
{
JOptionPane.showMessageDialog(null,ex,"Error de conexión2",JOptionPane.INFORMATION_MESSAGE);
}

java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Login().setVisible(true);
}
});
}

// Variables declaration - do not modify
private javax.swing.JButton botonAceptar;
private javax.swing.JButton botonCancelar;
private javax.swing.JTextField campoClave;
private javax.swing.JTextField campoUsuario;
private javax.swing.JLabel etClave;
private javax.swing.JLabel etqUsuario;
// End of variables declaration

}

Gracias por la ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:MySQL+Java y JDBC: erro de Not suitable driver

Publicado por luiyi (16 intervenciones) el 06/04/2006 22:27:08
Luego de meter el codigo de la clase main que posteaste mira lo que devuelve:

compile:
run:
com.mysql.jdbc.Driver
BUILD SUCCESSFUL (total time: 5 seconds)

osea, si funciona.........entonces reduzco las posibilidades y creo que el codigo que yo hice esta mal, mal, MALISIMO!!!!

pero el problema esque no se en donde estoy, mal...podrias chequearlo? esta en el post anterior a este.

gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

SOLUCION: MySQL+Java error de Not suitable driver

Publicado por luiyi (16 intervenciones) el 06/04/2006 23:23:15
Bien, la solución es mas que sencilla, tonta a la vez. Un gran descuido de mi parte:

la sentencia static string url = "jdbc:mysql://192.168.0.1"+bd

estaba mal escrita; debió ser siempre asi:

static string url = "jdbc:mysql://192.168.0.1/"+bd

El PROBLEMA era que me desayuné la diagonal ( / ) al termino de la dirección IP.

Tonto no? :D

Bien pues, ya está solucionado y curiosamente no me di cuenta nunca que el mismo codigo que corria en modo consola SI tenia esa diagonal y mi codigo de netbeans no lo tenia.

Saludos y mil gracias por tomarse la molestia de atender el post.

Luiyi.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:MySQL+Java y JDBC: erro de Not suitable driver

Publicado por reinaldo (1 intervención) el 10/07/2007 19:29:17
A mi me daba el mismo error y es que simplemente en el metodo de conexion

DriverManager.registerDriver(new org.gjt.mm.mysql.Driver());
Connection conexion = DriverManager.getConnection (
url,usuario, clave);

Se le debe pasar el URL, en este caso el string seria el siguiente:

"jdbc:mysql://lDIRECCION_IP/NOMBRE_BASE_DE_DATOS";

Y listo, con eso funciona bello.

Saludos panas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar