Ir al contenido principal

Mostrar resultado de consulta SQL en JComboBox Java

Hola a todos, en esta oportunidad dejo una pequeña funcion que lo que hace es consultar la base de datos y mostrar los resultados del campo en un JComboBox de java:




public void Buscar(){
    // Conectar a mysql:
    Connection conn;
    String bd = "base";
    String login ="root";
    String password ="tu clave";
    String url = "jdbc:mysql://localhost/"+bd;
        //limpio el combobox
        jcbDocentes.removeAllItems();
         try{
            Class.forName("com.mysql.jdbc.Driver");
            Connection conne=(Connection) DriverManager.getConnection(url,login,password);
            Statement consulta=(Statement) conne.createStatement();
//consulta sql a la tabla docentes solo campo nomdocente
             ResultSet rsdocentes = consulta.executeQuery ("select nomdocente from docentes");
            // Se recorre el ResultSet docentes.
            while (rsdocentes.next())
            {

                 //este es el Jcombobox
                jcbDocentes.addItem(rsdocentes.getObject("nomdocente"));
            }
            conne.close();
        } catch(SQLException e){
            JOptionPane.showMessageDialog(null,"Error sql no se pueden leer datos");


        } catch(ClassNotFoundException e){
            JOptionPane.showMessageDialog(null,"Error al leer la base de datos");

        }
}

Muy pronto como Mostrar el Resultado  SQL en un JTable Java.
Deja tu comentario o agradecimiento...

Comentarios

  1. Muchas gracias! Saludos!

    ResponderEliminar
  2. Buenas xD,me parec interesante tu codigo,le voy agregar nuevas cosas,y lo posteo saludos y gracias

    ResponderEliminar
  3. GRACIAS POR EL APORTE

    ResponderEliminar
  4. antes de probar dichos códigos, muchas gracias por subir este tipo de información a la red.

    ResponderEliminar
  5. Se agradece!!!!
    Saludos

    ResponderEliminar
  6. hola a todos a mi no me funciona me da un error del tipo NullPointerException en el resultSet cuando ejecuta la query ej: ResultSet rsdocentes
    = consulta.executeQuery ("select nomdocente from docentes");

    Necesito su respuesta
    Gracias!!

    si pueden mandenme un mail a victor.ariel.perez@gmail.com

    ResponderEliminar
  7. Hola viktor, lo que puede estar ocurriendo es que la estructura de la base de datos no coincide con el código revisa esta parte, tambien nos puedes compartir la estructura de la base de datos para poder ayudarte mejor.

    Saludos,

    ResponderEliminar
  8. ¡Total!. Una aportación muy interesante. Es una suerte que haya gente que haga estos aportes en la red.
    Gracias.

    ResponderEliminar
  9. amigo muy buenos tutoriales pero tambien necesitamos como haces para insertar a una base de datos access algunos de los item que selecccione del JCombobBox pero hay que saber que ese JComboBox se llenan desde la base de datos y como los vuelvo a insertar a l abse de datos??? te agradezco su comprension y le agradezco inmensamente si respondes.....

    ResponderEliminar
    Respuestas
    1. Los JComboBox tiene una propiedad .getItemAT(); la cual se encarga de obtener el String del item seleccionado, ahora para Mantener una base de datos semi-normalizada no es recomendable guardar datos que más adelante pueden ser modificfados por otro usuario, entonces no sería el mismo contenido almacenado anteriormente; LO recomendable el almacenar el ID del registro en la base da datos.

      Eliminar
  10. pana podrias mostrar una conexion pero con postgrsql y como mostrar datos eliminar e ingresar

    ResponderEliminar
    Respuestas
    1. //metodo guardar tipos de usuario:
      public void GuardarTipoUsuarios(String tipo_usuario, String comentarios){
      // variables:
      static String driver = "org.postgresql.Driver";
      static String ruta = "jdbc:postgresql://localhost:5432/base";
      static String user:"postgres";
      static String password:"clave";

      // Insertar datos a la bd:
      try{
      Class.forName(driver);
      Connection conne=(Connection) DriverManager.getConnection(ruta,user,password);
      Statement consulta=(Statement) conne.createStatement();
      consulta.executeUpdate("insert into tipo_usuarios(tipo_usuario, comentarios) values('"+tipo_usuario+"','"+comentarios+"')");
      }catch(SQLException e){
      JOptionPane.showMessageDialog(null,"Este grupo ya existe");
      }catch(ClassNotFoundException e){
      JOptionPane.showMessageDialog(null,"Error inesperado");
      }
      }

      Espero que sea de tu ayuda nos cuentas por favor...

      Eliminar
  11. Gracias men por todo muy buena explicacion como hago para consultar la fecha de una base de datos que tengo y mostrarla en un JDateChooser en java netbeans peroque cuando la consulte el me trae los datos pero en el boton actualizar no se deja acualizar la fecha q ingreso el resto de campos si se deja actualizar te agraddezco men

    ResponderEliminar
  12. hola, muy bueno tu codigo gracias,
    una pregunta

    tengo dos combobox en un frame, el primer combobox se llama estado y tiene las descripciones de los estados, el segundo es municipio y debe tomar las descripciones del municipio,

    todo esto desde una base de datos,

    como puedo tomor el id del estado para guardarlo en un procedimiento almacenado para que se guarde algo asi:


    id estado descripcion_municipio
    1 coacalco

    el id del municipio se agrega automatico

    ResponderEliminar
    Respuestas
    1. Buenos días;

      Yo lo que hago en estos casos es una sub-consulta, en el evento del selección de ítems del JComboBox con alguna variable, array o return que me capture la ción que necesite en ese momento.

      Espero te ayude...

      Eliminar
  13. Hola, muchas gracias, pero si quiero mostrar el nombre y quiero registrar el codigo como seria?

    ResponderEliminar
    Respuestas
    1. Hola Renzo, si quieres revisa esta publicación, parece ser lo que necesitas:

      http://www.javamexico.org/foros/java_enterprise/musql_netbeans_jdbc_jcombo_joption_problema_resuelto

      Eliminar
  14. Amigo me salvaste la vida!!!!!!!!!! MUCHAS GRACIAS!!!

    ResponderEliminar
  15. y si Hago en boton buscar al codigo de jcombobox con le metodo rs.next me coge el sgt ejmplo mi categoria es 6 y muestra 7

    ResponderEliminar
  16. Hola gran comunidad yo tengo una duda espero me puedan ayudar tengo 2 Jcombobox uno es de estados y otro de ciudades ambos son llenados desde una base de datos en sql server hasta ahi todo bien, pero no se como hacer que cuando por ejemplo yo selecciono X estado me aparezcan sus respectivas ciudades ojala me puedan ayudar

    ResponderEliminar
  17. Este es un método más espero que les sea útil...
    String sql=“SELECT*FROM doctores"
    public void llenarcombox(){
    Try{
    PreparedStatement pst=con.preparedStatement(sql);
    ResultSet es=con.executeQuery(sql);
    While(es.next){
    Jcomboxdoctores.addItem(es.getObject(“nAmedico“)

    }



    }catch(SQLException ex){
    JOptionLane.showMessageDialog(null,ex);


    }

    ResponderEliminar
  18. Hola, necesito saber en que parte del codigo tengo que poner este codigo para que funcione. Al crear una jFrame para diseñar me aparece todo esto:

    import java.awt.BorderLayout;
    import java.awt.EventQueue;

    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.border.EmptyBorder;
    import javax.swing.JComboBox;
    import javax.swing.JLabel;


    public class prueba2 extends JFrame {

    private JPanel contentPane;

    /**
    * Launch the application.
    */
    public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
    public void run() {
    try {
    prueba2 frame = new prueba2();
    frame.setVisible(true);
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    });
    }

    /**
    * Create the frame.
    */
    public prueba2() {
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 450, 300);
    contentPane = new JPanel();
    contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    setContentPane(contentPane);
    contentPane.setLayout(null);

    JComboBox comboBox = new JComboBox();
    comboBox.setBounds(175, 78, 88, 20);
    contentPane.add(comboBox);

    JLabel lblMostrar = new JLabel("Mostrar");
    lblMostrar.setBounds(80, 70, 63, 36);
    contentPane.add(lblMostrar);
    }
    }


    Quisiera saber en que parte tengo que insertar este codigo para que funcione.

    ResponderEliminar
    Respuestas
    1. Hola, esté código lo debes colocar en la parte pública de la clase, es decir, puede ser debajo de:

      contentPane.setLayout(null);

      * Hay que tener en cuenta el nombre de la variable que tiene el objeto JCombobox.

      Eliminar
    2. despúes solo queda llamar a la función buscar(), eso lo puedes hacer justo despúes de haber declarado la función, o tambien podrías sacar el código de esa función para que se ejecute inmediatamente con la clase.

      Eliminar
  19. Buenas noches, quien me colabora con este tema tengo que llenar un jCombobox con registros en una BD gestionada desde phpMyAdmin. Quien tiene la gentileza y me colabora. a Continuacion muestro conexion y jframe.

    conexion

    package pcelite;


    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import javax.swing.JOptionPane;

    /**
    *
    * @author luis_
    */

    public class Conector_pc {
    Connection Conexion;
    Statement Sentencia;
    Connection Conexion2;
    Statement Sentencia2;


    void Preparar_BD() throws InstantiationException, IllegalAccessException {
    try {
    String Controlador;
    Controlador="com.mysql.jdbc.Driver";
    Class.forName(Controlador).newInstance();
    }
    catch (ClassNotFoundException ex) {
    JOptionPane.showMessageDialog(null, "ERROR AL CARGAR DRIVE");
    }
    try {
    String ruta="jdbc:mysql://localhost/pcelite";
    String usuario = "root";
    String contraseña= "1102809567";
    Conexion= DriverManager.getConnection(ruta, usuario, contraseña);
    }
    catch (SQLException ex){
    JOptionPane.showMessageDialog(null, "ERROR AL CARGAR LA BASE DE DATOS");
    }
    try {
    Sentencia=Conexion.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
    }
    catch (SQLException ex){
    JOptionPane.showMessageDialog(null, "ERROR AL CARGAR LA SENTENCIA");
    }

    }

    void Preparar_BD2() throws InstantiationException, IllegalAccessException {
    try {
    String Controlador2;
    Controlador2="com.mysql.jdbc.Driver";
    Class.forName(Controlador2).newInstance();
    }
    catch (ClassNotFoundException ex) {
    JOptionPane.showMessageDialog(null, "ERROR AL CARGAR DRIVE");
    }
    try {
    String ruta="jdbc:mysql://localhost/pcelite";
    String usuario = "root";
    String contraseña= "12345678";
    Conexion2= DriverManager.getConnection(ruta, usuario, contraseña);
    }
    catch (SQLException ex){
    JOptionPane.showMessageDialog(null, "ERROR AL CARGAR LA BASE DE DATOS");
    }
    try {
    Sentencia2=Conexion2.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
    }
    catch (SQLException ex){
    JOptionPane.showMessageDialog(null, "ERROR AL CARGAR LA SENTENCIA");
    }
    }

    ResultSet getSql(String select_iDnombre_FROM_materias_ORDER_BY_ID) {
    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    void cerrar() {
    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    }

    ResponderEliminar
  20. Este es el ejemplo como haria:

    public void llenar_combobox(){
    DefaultComboBoxModel value;
    try {

    Statement stmt = cn.createStatement();
    ResultSet rs = stmt.executeQuery("SELECT Id_Proveedor,Nom__Proveedor FROM proveedores ORDER BY Id_Proveedor ASC");
    value =new DefaultComboBoxModel();
    jComboBox1.setModel(value);
    while (rs.next()) {
    value.addElement(new persona(rs.getString("Nom__Proveedor"),rs.getString("Id_Proveedor")));
    }
    rs.close();
    cn.close();
    } catch (Exception ex) {
    ex.printStackTrace();
    }
    }

    ResponderEliminar
  21. Gracias por el aporte, es una manera clara y sencilla, sin dar muchas vueltas al asunto.

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

Fireworks CS3 portable

Para que hagas los logos, botones e imagenes para tus aplicaciones facil y rapido... ¿Qué es Fireworks? Adobe Fireworks es una aplicación en forma de estudio (basada en la forma de estudio de Adobe Flash ), pero con más parecido a un taller destinado para el manejo híbrido de gráficos vectoriales con Gráficos en mapa de bits y que ofrece un ambiente eficiente tanto para la creación rápida de prototipos de sitios Web e interfaces de usuario, como para la creación y Optimización de Imágenes para web. Originalmente fue desarrollado por Macromedia , compañía que fue comprada en 2005 por Adobe Systems . Fireworks está disponible de forma individual o integrado en Adobe CS3/CS4/CS5 y por tanto ha sido diseñado para integrarse con otros productos de Adobe, como Dreamweaver y Flash . Integración con Adobe Flash La integración con Adobe Flash se ha ido reduciendo paulatinamente desde que Flash, en su versión 7, integró la herramienta PolyStar que hace un polígono

Pasar de una ventana a otra en java

Hola a todos en esta oportunidad estamos postiando algo que cuando empezamos con java es muy necesario y es como pasar de una ventana a otra, ya sea JDialog o JFrame; creados en tiempo de ejecucion o en aplicaciones de escritorio: Para llamar a un JDialog:        JDialog1 dialogo = new JDialog1 ( this , true );        dialogo . show (); y para cerrar un JDialogo de una plicacion de escritorio se puede utilizar:        dispose (); Para llamar a un JFrame:        JFrame1 frame = new JFrame1 ();        frame . show (); Para cerrar un JFrame de una plicacion de escritorio:                 dispose ();   o tambien: System. exit (0); y si se contruye a partir de la clase JFrame se coloca el siguiente codigo en la parte publica del documento:       setDefaultCloseOperation ( EXIT_ON_CLOSE ); Espero los siguientes ejemplos les sean de mucha ayuda... Deja tu comentario o agradecimiento.

Limitar texto con CSS

HTML: <span class= "text" > Hello world this is a long sentence </span> CSS: .text {   display : block ;   width : 100px ;   overflow : hidden ;   white-space : nowrap ;   text - overflow : ellipsis; }  RESULTADO: Hello world t...