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

Ayuda!:Netbeans+MySQL+JDBC: error de Not suitable driver

Estas en el tema de Ayuda!:Netbeans+MySQL+JDBC: error de Not suitable driver en el foro de Java en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 05/04/2006, 16:22
 
Fecha de Ingreso: abril-2006
Mensajes: 6
Antigüedad: 18 años, 1 mes
Puntos: 0
Ayuda!:Netbeans+MySQL+JDBC: error de Not suitable driver

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.
  #2 (permalink)  
Antiguo 06/04/2006, 10:28
Avatar de iceman_cml  
Fecha de Ingreso: diciembre-2005
Ubicación: Rosario
Mensajes: 63
Antigüedad: 18 años, 5 meses
Puntos: 0
De acuerdo Creo q ahi esta el problema

Creo q te falta el puerto yo lo uso asi por ej:

private void dbConnect() {
if (db == null) {
try {
Class.forName("org.gjt.mm.mysql.Driver");
db = DriverManager.getConnection("jdbc:mysql://localhost:3306/catalog","admin","admin");
}
catch (Exception e) {
System.out.println("Error Connecting to catalog DB: "+ e.toString());
}
}
  #3 (permalink)  
Antiguo 06/04/2006, 10:39
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 7 meses
Puntos: 51
Error "Not suitable driver" -> No sabe o no encuentra el driver JDBC para hacer una llamada con esa cadena de conexión. A saber:
.- La cadena de conexión tiene una sintaxis incorrecta
o
.- El driver no se encuentra en el classpath
o
.- El driver no ha sido registrado antes de intentar abrir la conexion

Esos son los "sospechosos habituales".
  #4 (permalink)  
Antiguo 06/04/2006, 13:50
 
Fecha de Ingreso: abril-2006
Mensajes: 6
Antigüedad: 18 años, 1 mes
Puntos: 0
Saludos.

He incluido el driver de mysql en la varaible de entorno Classpath al igual que en el proyecto de netbeans he incluido en la seccion Runtime en Databases el driver de MySQL que luego de agregarle usuario y clave he logrado una conexion EXITOSA!!!!! en la seccion RUntime claro....luego, he ido a la seccion Project y he agregado el driver de MySQL a la seccion Libs tanto como Libreria como un Jar puro; en el modo libreria he configurado y orientado hacia el driver de mysql y en el modo jar lo he incluido como tal. el codigo de la forma login.java que realiza la conexion es este:

* 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.WindowConstan ts.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.ActionE vent 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,"Autenti cación del sistema",
JOptionPane.INFORMATION_MESSAGE);}





}

private void botonCancelarActionPerformed(java.awt.event.Action Event 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

}


Decidí no usar un Main.java y hacer la conexion ahi, sino que declarar la conexion en el codigo de la forma login.java con el fin (aberrado creo yo) de hacer que la conexion se establezca al momento de la carga de la forma login.java de modo tal, que el usuario una vez haya ingresado su nombre de usuario y contraseña poder compara estos a posteriori en la base de datos para dar paso al resto de la aplicacion.

En teoria he hecho lo que los manuales dicen que hay que hacer, pero debe haber algo que hago mal que no logro ver que es, que me impide continuar esta test de conexion. He instalado incluso Netbeans 5 y mysql 5 y todo sigue igual.

Gracias por su ayuda de antemano.
  #5 (permalink)  
Antiguo 06/04/2006, 16:33
 
Fecha de Ingreso: abril-2006
Mensajes: 6
Antigüedad: 18 años, 1 mes
Puntos: 0
Solución!!!

saludos,

bien revisando el codigo encuentro que el error era de programacion (del programador, ozeaze yo) pues en el string de conexion de url declaré static String url = "jdbc:mysql://192.168.0.1"+bd y resulta que me almorcé una diagonal ( / ) al final de la url quedando asi:

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

restaurando la diagonal donde deberia haber estado desde el inicio, el codigo funcionó.

Gracias por la atención.

Errar, es de humanos....:D
  #6 (permalink)  
Antiguo 25/04/2006, 12:39
 
Fecha de Ingreso: abril-2006
Mensajes: 1
Antigüedad: 18 años
Puntos: 0
Problema

Que tal,

A mi me pasa algo similar, de la misma forma en la parte de runtime corre a la perfeccion, pero por codigo no puedo me aparece el error java.lang.ClassNotFoundException: com.mysql.jdbc.Driver, tambien ya registre el driver en classpath, en mi caso truena cuando llega a LA PARTE DE Class.forName("com.mysql.jdbc.Driver").newInstance ();, no se que pase, ya lo hice de mil formas y no puedo establecer la conexion, ya revise el classpath y si aparece el archivo, como puedo saber porque no lo esta haciendo bien, de hecho ya lo hice en crimson editor y no tengo exito. espero que alguien pueda ayudarme.

public class TestConnection
{
static String bd = "enrique";
static String login = "";
static String password = "";
static String url = "jdbc:mysql://localhost/"+bd;

public static void main(String[] args) throws Exception
{
Connection conn = null;

try
{
//Class.forName("org.gjt.mm.mysql.Driver").newInstan ce();
EN LA LINEA ANTERIOR SE MUESTRA EL OTRO DRIVER QUE SE PUEDE UTILIZAR, PERO CON NINGUNO DE LOS DOS ME FUNCIONA

EN LA SIGUIENTE LINEA ES DONDE TRUENA
-->Class.forName("com.mysql.jdbc.Driver").newInstanc e();<--


conn = DriverManager.getConnection(url,login,password);

if (conn != null)
{
System.out.println("Conexión a base de datos "+url+" ... Ok");
conn.close();
}
}
catch(SQLException ex)
{
System.out.println(ex);
}
catch(ClassNotFoundException ex)
{
System.out.println(ex);
}

}
}

GRACIAS
  #7 (permalink)  
Antiguo 27/10/2006, 09:30
 
Fecha de Ingreso: julio-2006
Mensajes: 1
Antigüedad: 17 años, 10 meses
Puntos: 0
Servlet

POr fa si me podrian enviar informacion de ejemplos con servlets y netbeans con base de datos oracle, mysql, sqlserver2005 jdbc
mi correo es [email protected]
  #8 (permalink)  
Antiguo 07/01/2008, 10:02
 
Fecha de Ingreso: enero-2008
Mensajes: 1
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Ayuda!:Netbeans+MySQL+JDBC: error de Not suitable driver

Hola a todos....
Yo tambien necesito ejemplos con servlets y netbeans con base de datos oracle, mysql, sqlserver jdbc espero y me puedan ayudar mi correo es [email protected]
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 03:15.