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

[SOLUCIONADO] No suitable driver found

Estas en el tema de No suitable driver found en el foro de Java en Foros del Web. Tengo el siguiente problema. Cuando intento conectar con base de datos en un ComboBox me da el error "No suitable driver found for jdbc:mysql" Sin ...
  #1 (permalink)  
Antiguo 25/02/2014, 12:20
 
Fecha de Ingreso: diciembre-2013
Ubicación: Ribeira
Mensajes: 15
Antigüedad: 10 años, 11 meses
Puntos: 0
No suitable driver found

Tengo el siguiente problema.
Cuando intento conectar con base de datos en un ComboBox me da el error "No suitable driver found for jdbc:mysql"
Sin embargo en el segundo ComboBox que es exactamente igual solo que dentro de un ActionListener funciona bien.
¿Cómo puede ser esto posible?
Código PHP:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;


public class 
Salida extends JFrame {

    private 
JPanel contentPane;
      private 
JTextField tf1;
      private 
JTextField tf2;
      private 
JTextField tf3;
      private 
JTextField tf4;
      private 
JTextField tf5;
      private 
JComboBox combo1;
      private 
JComboBox combo2;
      private 
Object Codigo;
      private 
int CodigoInt;
      private 
int Albaran;
      private 
int PaletsEntrada;
      private 
String Almacen;
      private 
java.util.Date Fecha;
      private 
java.sql.Date Fecha2;
      private 
JLabel labelResultado;
      private 
JButton btnConsultaPorCdigo;
      private 
JLabel lblIngreseCdigoDe;
      
      public 
Salida() {
            
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            
setBounds(100100606405);
            
contentPane = new JPanel();
            
contentPane.setBorder(new EmptyBorder(5555));
            
setContentPane(contentPane);
            
contentPane.setLayout(null);
            
            
JLabel lblSeleccionCodigo = new JLabel("Selecciona el Código");
            
lblSeleccionCodigo.setBounds(233819314);
            
contentPane.add(lblSeleccionCodigo);
            
//combobox de seleccion de codigo

            
            
JLabel lblCodigo = new JLabel("Código");
            
lblCodigo.setBounds(23749514);
            
contentPane.add(lblCodigo);
              
combo1=new JComboBox();
            
combo1.setBounds(2472019320);
            
contentPane.add(combo1);                       
            try {
              
Connection conexion=DriverManager.getConnection("jdbc:mysql://127.0.0.1/almacenaje","root" ,"mysql");
              
Statement comando=conexion.createStatement();
              
ResultSet rscodigosenvase comando.executeQuery("select Codigo from envase_codigo");
              while (
rscodigosenvase.next())
              {
                  
combo1.addItem(rscodigosenvase.getObject("Codigo"));
              }
             
            } catch(
SQLException ex){
              
setTitle(ex.toString());
            }

            
            
JLabel lblFecha = new JLabel("Formato");
            
lblFecha.setBounds(23749514);
            
contentPane.add(lblFecha);
            
            
tf2 = new JTextField();
            
tf2.setBounds(2477110720);
            
contentPane.add(tf2);
            
tf2.setColumns(10);
            
            
JLabel lblAlbaran = new JLabel("Albarán");
            
lblFecha.setBounds(231049514);
            
contentPane.add(lblAlbaran);
            
            
tf3 = new JTextField();
            
tf3.setBounds(24710110720);
            
contentPane.add(tf3);
            
tf3.setColumns(10);
            
            
JLabel lblPaletsEntrada = new JLabel("Palets Entrada");
            
lblPaletsEntrada.setBounds(231349514);
            
contentPane.add(lblPaletsEntrada);
            
            
tf4 = new JTextField();
            
tf4.setBounds(24713110720);
            
contentPane.add(tf4);
            
tf4.setColumns(10);
            
            
JLabel lblAlmacen = new JLabel("Almacen");
            
lblAlmacen.setBounds(231649514);
            
contentPane.add(lblAlmacen);
            
            
tf5 = new JTextField();
            
tf5.setBounds(24716110720);
            
contentPane.add(tf5);
            
tf5.setColumns(10);
            
            
JButton btnAlta = new JButton("Alta");
           
            
btnAlta.addActionListener(new ActionListener() {
              public 
void actionPerformed(ActionEvent arg0) {
                  
combo1=new JComboBox();
                
combo1.setBounds(2472019320);
                
contentPane.add(combo1);                       
                try {
                  
Connection conexion=DriverManager.getConnection("jdbc:mysql://127.0.0.1/almacenaje","root" ,"mysql");
                  
Statement comando=conexion.createStatement();
                  
ResultSet rscodigosenvase comando.executeQuery("select Codigo from envase_codigo");
                  while (
rscodigosenvase.next())
                  {
                      
combo1.addItem(rscodigosenvase.getObject("Codigo"));
                  }
                 
                } catch(
SQLException ex){
                  
setTitle(ex.toString());
                }
              }
            });
            
btnAlta.setBounds(2472188923);
            
contentPane.add(btnAlta);
            
cargarDriver();
          }
          
          private 
void cargarDriver() {
            try {
              Class.
forName("com.mysql.jdbc.Driver");
            }catch(
Exception ex) {
              
setTitle(ex.toString());
            }
          }
        


  #2 (permalink)  
Antiguo 25/02/2014, 14:19
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: No suitable driver found

No es exactamente igual.

Para que funcione, es necesario llamar a cargaDriver() antes de intentar establecer la conexión con la base de datos.

En el primer caso, el código de conexión se ejecuta directamente en el constructor, antes de llamar a cargaDriver(), por lo que falla.

En el segundo caso, el código para establecer conexión está dentro de un ActionListener, por lo que no se ejecutará hasta que alguien pulse un botón y esto sucederá cuando ya se haya ejecutado todo el código de tu constructor Salida() incluido el cargaDriver() del final.

Pon la llamada a cargaDriver() al principio del constructor.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 26/02/2014, 03:55
 
Fecha de Ingreso: diciembre-2013
Ubicación: Ribeira
Mensajes: 15
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: No suitable driver found

Muchas gracias

Etiquetas: driver, found, 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 04:12.