Ejemplo de Java + SQL + Netbeans

22 07 2008

Después de un poco de retraso de este post y de tener un poco de tiempo sin postear algo, traigo este ejemplo (el tercero) de Java y MySQL bajo la plataforma Netbeans. El propósito de este post es crear una clase que realmente realiza las acciones básicas (agregar, modificar, eliminar, consultar) pero implementadas de una “mejor manera” comparada con los otros post que hay en este blog sobre este tema (tampoco quiero decir que sea la mejor ni mucho menos).

La base de datos que usaremos para este ejemplo es la siguiente:

  • BD: prueba.
  • tabla: usuarios.
  • campos: id(autoinc), nombre, contraseña.

Diagrama de clases:

Bueno, primero que nada empezaremos con nuestra clase que contendrá los métodos de las acciones que vamos a realizar.

import java.sql.*;
import java.util.Hashtable;

public class SQLconnection {
private String user;
private String password;
private String db;
private String host;
private String url;
private Connection conn = null;
private Statement stm;
private ResultSet rs;

public SQLconnection()
{
this.url = “jdbc:mysql://” + this.host + “/” + this.db;
}

public SQLconnection (String server, String usuario, String contraseña, String bd)
{
this.user = usuario;
this.password = contraseña;
this.db = bd;
this.host = server;
this.url = “jdbc:mysql://” + this.host + “/” + this.db;
}

public void connectar()
{
try {
Class.forName(“org.gjt.mm.mysql.Driver”);
conn = DriverManager.getConnection(url, user, password);
if (conn != null)
{
System.out.println(“Conexión a base de datos “+url+” … Ok”);
stm = conn.createStatement();
}
}
catch(SQLException ex) {
System.out.println(“Hubo un problema al intentar conectarse con la base de datos “+url);
}
catch(ClassNotFoundException ex) {
System.out.println(ex);
}
}

public String getDb() {
return db;
}

public void setDb(String db) {
this.db = db;
}

public String getHost() {
return host;
}

public void setHost(String host) {
this.host = host;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

public String getUser() {
return user;
}

public void setUser(String user) {
this.user = user;
}

public ResultSet consultar(String tabla) throws SQLException
{
rs = stm.executeQuery(“SELECT * FROM ” + tabla);
return rs;
}

public String buscarNombre(String tabla, String nombre) throws SQLException
{
String name = null;
try{
rs = stm.executeQuery(“SELECT * FROM ” + tabla + ” WHERE nombre = ‘”+ nombre +”‘ LIMIT 1″);
rs.next();
name = rs.getString(2);
}catch(SQLException ex){System.out.println(ex);}
return name;
}

public void insertar(Hashtable usuario)
{
try {
stm.execute(“INSERT INTO usuarios (nombre, contraseña) VALUES (‘” + usuario.get(“nombre”) + “‘,’” + usuario.get(“contraseña”) + “‘)”);
} catch (SQLException ex) {
System.out.println(ex);
}
}

public void actualizar(String tabla, Hashtable usuario, String nombre)
{
try {
stm.execute(“UPDATE ” + tabla + ” SET nombre=’” + usuario.get(“nombre”) + “‘ WHERE nombre=’” + nombre + “‘”);
} catch (SQLException ex) {
System.out.println(ex);
}
}

public void eliminar(String tabla, String nombre)
{
try {
stm.execute(“DELETE FROM ” + tabla + ” WHERE nombre=’” + nombre + “‘”);
} catch (SQLException ex) {
System.out.println(ex);
}
}
}

Como podemos observar, esta clase cuenta con sobrecarga de constructores lo cual nos permite conectarnos de 2 maneras distintas a la base de datos. La primera es utilizar el constructor que no recibe ningún parámetro y definirlos mediante los métodos set y get para después llamar al método conectar. La segunda es enviarle directamente los valores al constructor  y, al igual que en la forma anterior, ejecutar el método conectar, y esta será la forma que usaremos para nuestro ejemplo.

Primero que nada vamos a conectarnos a nuestra base de datos y realizaremos una consulta de todos los registros:

SQLconnection con = new SQLconnection(“localhost”, “usuario”, “contraseña”, “prueba”);
con.connectar();
ResultSet rs;
rs = con.consultar(“usuarios”);
while(rs.next()){
System.out.println(rs.getString(1));
System.out.println(rs.getString(2));
System.out.println(rs.getString(3));
}

En esta clase también implementamos una opción que nos permite realizar búsquedas por medio de nombres(es el campo de la base de datos que elegí para este ejemplo); ha este método le mandamos 2 parámetros, que son la base de datos y el nombre:

System.out.println(con.buscarNombre(“usuarios”, “frago”));

Para insertar un nuevo registro vamos a hacer uso del Hastable para enviarle los valores que queremos agregar:

Hashtable usuario = new Hashtable();
usuario.put(“nombre”, “frago”);
usuario.put(“contraseña”, “xxx”);
con.insertar(usuario);

Para eliminar un registro simplemente le ejecutamos el método correspondiente y le pasamos como parametros la tabla y el nomrbe del usuario a eliminar:

con.eliminar(tabla, “frago”);

Para actualizar un registro le tenemos que pasar 3 parámetros al método. EL primero es el nombre de la tabla; el segundo es un Hastable en el que se incluya la modificación que se quiere realizar y el tercer es, en este caso, el nombre de la persona a la que se le va realizar la modificación:

Hashtable usuario = new Hashtable();
usuario.put(“nombre”, “frago1″);
con.actualizar(tabla, usuario, “frago”);

El proyecto en netbeans pueden descargarselo AQUI


Acciones

Información

38 respuestas

22 07 2008
22 07 2008
pecesama

excelente clase, si el post tubiera un diagrama de clase en UML quedaría mucho mejor explicado

23 07 2008
frago

al parecer si aprendí un poco durante el semestre!!! xD

23 07 2008
pecesama

parece que sí jeje

6 08 2008
jherson

verdaderamente genial ayudo a pasar el curso de java con un profe que no enseño nada ni sabia que su curso era de java jejejeje

6 08 2008
jherson

muy bueno enserio

5 09 2008
Ejemplo de Java + SQL + Netbeans — kodrs

[...] Ir al tutorial -> Ejemplo de Java + SQL + Netbeans [...]

22 09 2008
aroldo

Excelente

27 09 2008
xxxx

One cuestion , si no tengo el mysql trabaja con el sql 2005 ?

30 09 2008
Osky

Buenisimo, muchas gracias!

8 11 2008
Fernando

Excelente material muy didactico para los que desean aprender a programar en java en 2 días, chevere, ya me aburre leer libros de 400 paginas para aprender un nuevo lenguaje

8 11 2008
frago

Hola Fernando gracias por el comment jeje, a veces si es aburrido leer libros de 400 páginas para solo aprender un nuevo lenguaje.

Saludos!!

17 11 2008
pumba

es un programa final y encontre en 2 min y yo me tarde 2 semanas haciendo y con errores , ja gracias wey

17 11 2008
frago

que bueno que te sirvio ;)

23 11 2008
Jeronimo

Hola, soy nuevo en esto
Oye una preguntota, al momento de correlo y darle en el botón ejecutar código me marca un error, podrias ayudarme???

23 11 2008
Diego Gonzales

Hola estimados amigos solo me gustaria desir q si tienen algunos ejemplo de como conextar una base de datos en mysql y acces esto en netbeans es q tengo dos base de datos uno en acces 2003 y el otro en mysql asi q me gustaria conectarlos en java esto pero con el netybeans diganme como lo puedo hacer por favor solo quiero un ejemplo de esto .

saludos : pirata3000
mail: pirata_delcaribe2007@hotmail.com
mail: system-bol@hotmail.com

23 11 2008
frago

@Jeromino: sería bueno que pusieras que error te dá jeje

23 11 2008
Jeronimo

HOLA FRAGO GRACIAS POR RESPONDER ME ARROJA EL SIGUIENTE ERROR:

Hubo un problema al intentar conectarse con la base de datos jdbc:mysql://localhost/prueba
Exception in thread “AWT-EventQueue-0″ java.lang.Error: java.lang.reflect.InvocationTargetException
at org.jdesktop.application.ApplicationAction.actionFailed(ApplicationAction.java:859)
at org.jdesktop.application.ApplicationAction.noProxyActionPerformed(ApplicationAction.java:665)
at org.jdesktop.application.ApplicationAction.actionPerformed(ApplicationAction.java:698)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
at java.awt.Component.processMouseEvent(Component.java:6134)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5899)
at java.awt.Container.processEvent(Container.java:2023)
at java.awt.Component.dispatchEventImpl(Component.java:4501)
at java.awt.Container.dispatchEventImpl(Container.java:2081)
at java.awt.Component.dispatchEvent(Component.java:4331)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4301)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3965)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3895)
at java.awt.Container.dispatchEventImpl(Container.java:2067)
at java.awt.Window.dispatchEventImpl(Window.java:2458)
at java.awt.Component.dispatchEvent(Component.java:4331)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jdesktop.application.ApplicationAction.noProxyActionPerformed(ApplicationAction.java:662)
… 27 more
Caused by: java.lang.NullPointerException
at example.SQLconnection.consultar(SQLconnection.java:92)
at example.ExampleView.prueba(ExampleView.java:212)
… 32 more

LLA PRIMERA LINEA SI SE QUE ES PORQUE NO ENCUENTRA LA BD. PERO LAS DEMÁS NO TENGO IDEA. POR CIERTO LA B.D. ESTA EN EL ARCHIVO QUE SUBISTE EN ESTE BLOG, O COMO LE PUEDO HACER???…. GRACIAS Y SALU2

24 11 2008
frago

@Jeronimo: primero arregla lo de la bd. La bd esta hecha en MySQL, yo la hice con el appserver, pero hay otras opciones, después debes de tener el jar que te permit hacer la conexión a la bd. Primero soluciona eso

Saudos!!

25 11 2008
Jeronimo

Hola Frago, ya me corrio, no habia puesto atención a las caracteristicas de la B.D. que comentaste al principio de este post. Por cierto estoy haciendo un proyecto de un sistema Experto de entrenamiento para parteros, y pues la verdad no tengo muchos conocimientos de manejo de B.D. de MySQL con Netbeans, te agradeceria mucho que me pudieras facilitar algunos ejemplos. no se si sea necesario darte mi correo.
De ante mano gracias!!!

4 12 2008
Brandon

Hola, muchas gracias por el tutorial, en verdad me ha sido muy util. Hasta que encontre algo muy util. Le doy un 100 a la estructura de tus clases, va a ser la base para hacer un proyecto muy grande que estoy haciendo! Saludos.

5 12 2008
frago

que bueno que te sirva Brandon :P

Saludos!!

11 12 2008
Julio Mendez

Hola solamente queria saber si alguien me puede decir como conectar una base de datos con mySQL usando Netbeans 6.0

26 12 2008
Walter

hola Frago.. una pregunta.. tengo una bd en access y la llamo desde el netbeans, tengo opciones de modificar, agregar y eliminar pero me salen errores como: “Error en la fila” , “Estado del cursor no valido”, “Result set type is TYPE_FORWARD_ONLY”.. podrias ayudarme por favor…gracias..

26 12 2008
frago

@Walter: hola, mmm una de las razones por la que puede suceder ese error es debido a que tu Result set no es “scrollable” es decir, sólo puedes ir o avanzar hacia adelante usando el método next() pero no puedes retroceder, tal vez este enlace te pueda servir: http://java.sun.com/javase/6/docs/api/

tal vez te ayude usar lo siguiente: ResultSet.TYPE_SCROLL_INSENSITIVE aunque no lo eh probado

espero te sirva, saludos!!

16 01 2009
Lion

me has ayudado mucho, esto es justo lo que necesitaba para mi proyecto de 3º de informatica ;)

26 01 2009
David

Me sale este error cuando trato de ejecutar. alguien me puede ayudar. gracias
C:\example\example\src\example\ExampleAboutBox.java:82: cannot find symbol
symbol : class GroupLayout
location: package javax.swing
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
C:\example\example\src\example\ExampleAboutBox.java:82: cannot find symbol
symbol : class GroupLayout
location: package javax.swing
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
C:\example\example\src\example\ExampleAboutBox.java:101: package javax.swing.GroupLayout does not exist
.addComponent(appDescLabel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 266, Short.MAX_VALUE)
C:\example\example\src\example\ExampleAboutBox.java:101: cannot find symbol
symbol : class GroupLayout
location: package javax.swing
.addComponent(appDescLabel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 266, Short.MAX_VALUE)
C:\example\example\src\example\ExampleAboutBox.java:100: package javax.swing.GroupLayout does not exist
.addComponent(appTitleLabel, javax.swing.GroupLayout.Alignment.LEADING)
C:\example\example\src\example\ExampleAboutBox.java:90: package javax.swing.GroupLayout does not exist
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
C:\example\example\src\example\ExampleAboutBox.java:96: package javax.swing.GroupLayout does not exist
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
C:\example\example\src\example\ExampleAboutBox.java:95: package javax.swing.LayoutStyle does not exist
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
C:\example\example\src\example\ExampleAboutBox.java:91: package javax.swing.GroupLayout does not exist
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
C:\example\example\src\example\ExampleAboutBox.java:89: package javax.swing.GroupLayout does not exist
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
C:\example\example\src\example\ExampleAboutBox.java:85: package javax.swing.GroupLayout does not exist
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
C:\example\example\src\example\ExampleAboutBox.java:122: package javax.swing.GroupLayout does not exist
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
C:\example\example\src\example\ExampleAboutBox.java:121: package javax.swing.LayoutStyle does not exist
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
C:\example\example\src\example\ExampleAboutBox.java:118: package javax.swing.GroupLayout does not exist
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
C:\example\example\src\example\ExampleAboutBox.java:117: package javax.swing.LayoutStyle does not exist
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
C:\example\example\src\example\ExampleAboutBox.java:114: package javax.swing.GroupLayout does not exist
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
C:\example\example\src\example\ExampleAboutBox.java:113: package javax.swing.LayoutStyle does not exist
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
C:\example\example\src\example\ExampleAboutBox.java:111: package javax.swing.LayoutStyle does not exist
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
C:\example\example\src\example\ExampleAboutBox.java:107: cannot find symbol
symbol : class GroupLayout
location: package javax.swing
.addComponent(imageLabel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
C:\example\example\src\example\ExampleAboutBox.java:107: cannot find symbol
symbol : class GroupLayout
location: package javax.swing
.addComponent(imageLabel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
C:\example\example\src\example\ExampleAboutBox.java:106: package javax.swing.GroupLayout does not exist
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
C:\example\example\src\example\ExampleView.java:125: cannot find symbol
symbol : class GroupLayout
location: package javax.swing
javax.swing.GroupLayout mainPanelLayout = new javax.swing.GroupLayout(mainPanel);
C:\example\example\src\example\ExampleView.java:125: cannot find symbol
symbol : class GroupLayout
location: package javax.swing
javax.swing.GroupLayout mainPanelLayout = new javax.swing.GroupLayout(mainPanel);
C:\example\example\src\example\ExampleView.java:129: package javax.swing.GroupLayout does not exist
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, mainPanelLayout.createSequentialGroup()
C:\example\example\src\example\ExampleView.java:128: package javax.swing.GroupLayout does not exist
mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
C:\example\example\src\example\ExampleView.java:135: package javax.swing.GroupLayout does not exist
mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
C:\example\example\src\example\ExampleView.java:173: cannot find symbol
symbol : class GroupLayout
location: package javax.swing
javax.swing.GroupLayout statusPanelLayout = new javax.swing.GroupLayout(statusPanel);
C:\example\example\src\example\ExampleView.java:173: cannot find symbol
symbol : class GroupLayout
location: package javax.swing
javax.swing.GroupLayout statusPanelLayout = new javax.swing.GroupLayout(statusPanel);
C:\example\example\src\example\ExampleView.java:183: package javax.swing.LayoutStyle does not exist
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
C:\example\example\src\example\ExampleView.java:182: cannot find symbol
symbol : class GroupLayout
location: package javax.swing
.addComponent(progressBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
C:\example\example\src\example\ExampleView.java:182: cannot find symbol
symbol : class GroupLayout
location: package javax.swing
.addComponent(progressBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
C:\example\example\src\example\ExampleView.java:182: cannot find symbol
symbol : class GroupLayout
location: package javax.swing
.addComponent(progressBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
C:\example\example\src\example\ExampleView.java:181: package javax.swing.LayoutStyle does not exist
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 81, Short.MAX_VALUE)
C:\example\example\src\example\ExampleView.java:177: cannot find symbol
symbol : class GroupLayout
location: package javax.swing
.addComponent(statusPanelSeparator, javax.swing.GroupLayout.DEFAULT_SIZE, 251, Short.MAX_VALUE)
C:\example\example\src\example\ExampleView.java:176: package javax.swing.GroupLayout does not exist
statusPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
C:\example\example\src\example\ExampleView.java:195: cannot find symbol
symbol : class GroupLayout
location: package javax.swing
.addComponent(progressBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
C:\example\example\src\example\ExampleView.java:195: cannot find symbol
symbol : class GroupLayout
location: package javax.swing
.addComponent(progressBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
C:\example\example\src\example\ExampleView.java:195: cannot find symbol
symbol : class GroupLayout
location: package javax.swing
.addComponent(progressBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
C:\example\example\src\example\ExampleView.java:192: package javax.swing.GroupLayout does not exist
.addGroup(statusPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
C:\example\example\src\example\ExampleView.java:191: package javax.swing.LayoutStyle does not exist
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
C:\example\example\src\example\ExampleView.java:191: cannot find symbol
symbol : class GroupLayout
location: package javax.swing
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
C:\example\example\src\example\ExampleView.java:190: cannot find symbol
symbol : class GroupLayout
location: package javax.swing
.addComponent(statusPanelSeparator, javax.swing.GroupLayout.PREFERRED_SIZE, 2, javax.swing.GroupLayout.PREFERRED_SIZE)
C:\example\example\src\example\ExampleView.java:190: cannot find symbol
symbol : class GroupLayout
location: package javax.swing
.addComponent(statusPanelSeparator, javax.swing.GroupLayout.PREFERRED_SIZE, 2, javax.swing.GroupLayout.PREFERRED_SIZE)
C:\example\example\src\example\ExampleView.java:188: package javax.swing.GroupLayout does not exist
statusPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
Note: C:\example\example\src\example\ExampleView.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
44 errors
BUILD FAILED (total time: 0 seconds)

26 01 2009
David

este error me sale cuando trato de compilar.si alguien me puede ayudar.muchas gracias
init:
deps-jar:
Compiling 2 source files to C:\example\example\build\classes
C:\example\example\src\example\ExampleAboutBox.java:82: cannot find symbol
symbol : class GroupLayout
location: package javax.swing
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
C:\example\example\src\example\ExampleAboutBox.java:82: cannot find symbol
symbol : class GroupLayout
location: package javax.swing
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
C:\example\example\src\example\ExampleAboutBox.java:101: package javax.swing.GroupLayout does not exist
.addComponent(appDescLabel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 266, Short.MAX_VALUE)
C:\example\example\src\example\ExampleAboutBox.java:101: cannot find symbol
symbol : class GroupLayout
location: package javax.swing
.addComponent(appDescLabel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 266, Short.MAX_VALUE)
C:\example\example\src\example\ExampleAboutBox.java:100: package javax.swing.GroupLayout does not exist
.addComponent(appTitleLabel, javax.swing.GroupLayout.Alignment.LEADING)
C:\example\example\src\example\ExampleAboutBox.java:90: package javax.swing.GroupLayout does not exist
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
C:\example\example\src\example\ExampleAboutBox.java:96: package javax.swing.GroupLayout does not exist
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
C:\example\example\src\example\ExampleAboutBox.java:95: package javax.swing.LayoutStyle does not exist
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
C:\example\example\src\example\ExampleAboutBox.java:91: package javax.swing.GroupLayout does not exist
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
C:\example\example\src\example\ExampleAboutBox.java:89: package javax.swing.GroupLayout does not exist
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
C:\example\example\src\example\ExampleAboutBox.java:85: package javax.swing.GroupLayout does not exist
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
C:\example\example\src\example\ExampleAboutBox.java:122: package javax.swing.GroupLayout does not exist
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
C:\example\example\src\example\ExampleAboutBox.java:121: package javax.swing.LayoutStyle does not exist
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
C:\example\example\src\example\ExampleAboutBox.java:118: package javax.swing.GroupLayout does not exist
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
C:\example\example\src\example\ExampleAboutBox.java:117: package javax.swing.LayoutStyle does not exist
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
C:\example\example\src\example\ExampleAboutBox.java:114: package javax.swing.GroupLayout does not exist
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
C:\example\example\src\example\ExampleAboutBox.java:113: package javax.swing.LayoutStyle does not exist
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
C:\example\example\src\example\ExampleAboutBox.java:111: package javax.swing.LayoutStyle does not exist
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
C:\example\example\src\example\ExampleAboutBox.java:107: cannot find symbol
symbol : class GroupLayout
location: package javax.swing
.addComponent(imageLabel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
C:\example\example\src\example\ExampleAboutBox.java:107: cannot find symbol
symbol : class GroupLayout
location: package javax.swing
.addComponent(imageLabel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
C:\example\example\src\example\ExampleAboutBox.java:106: package javax.swing.GroupLayout does not exist
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
C:\example\example\src\example\ExampleView.java:125: cannot find symbol
symbol : class GroupLayout
location: package javax.swing
javax.swing.GroupLayout mainPanelLayout = new javax.swing.GroupLayout(mainPanel);
C:\example\example\src\example\ExampleView.java:125: cannot find symbol
symbol : class GroupLayout
location: package javax.swing
javax.swing.GroupLayout mainPanelLayout = new javax.swing.GroupLayout(mainPanel);
C:\example\example\src\example\ExampleView.java:129: package javax.swing.GroupLayout does not exist
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, mainPanelLayout.createSequentialGroup()
C:\example\example\src\example\ExampleView.java:128: package javax.swing.GroupLayout does not exist
mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
C:\example\example\src\example\ExampleView.java:135: package javax.swing.GroupLayout does not exist
mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
C:\example\example\src\example\ExampleView.java:173: cannot find symbol
symbol : class GroupLayout
location: package javax.swing
javax.swing.GroupLayout statusPanelLayout = new javax.swing.GroupLayout(statusPanel);
C:\example\example\src\example\ExampleView.java:173: cannot find symbol
symbol : class GroupLayout
location: package javax.swing
javax.swing.GroupLayout statusPanelLayout = new javax.swing.GroupLayout(statusPanel);
C:\example\example\src\example\ExampleView.java:183: package javax.swing.LayoutStyle does not exist
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
C:\example\example\src\example\ExampleView.java:182: cannot find symbol
symbol : class GroupLayout
location: package javax.swing
.addComponent(progressBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
C:\example\example\src\example\ExampleView.java:182: cannot find symbol
symbol : class GroupLayout
location: package javax.swing
.addComponent(progressBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
C:\example\example\src\example\ExampleView.java:182: cannot find symbol
symbol : class GroupLayout
location: package javax.swing
.addComponent(progressBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
C:\example\example\src\example\ExampleView.java:181: package javax.swing.LayoutStyle does not exist
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 81, Short.MAX_VALUE)
C:\example\example\src\example\ExampleView.java:177: cannot find symbol
symbol : class GroupLayout
location: package javax.swing
.addComponent(statusPanelSeparator, javax.swing.GroupLayout.DEFAULT_SIZE, 251, Short.MAX_VALUE)
C:\example\example\src\example\ExampleView.java:176: package javax.swing.GroupLayout does not exist
statusPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
C:\example\example\src\example\ExampleView.java:195: cannot find symbol
symbol : class GroupLayout
location: package javax.swing
.addComponent(progressBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
C:\example\example\src\example\ExampleView.java:195: cannot find symbol
symbol : class GroupLayout
location: package javax.swing
.addComponent(progressBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
C:\example\example\src\example\ExampleView.java:195: cannot find symbol
symbol : class GroupLayout
location: package javax.swing
.addComponent(progressBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
C:\example\example\src\example\ExampleView.java:192: package javax.swing.GroupLayout does not exist
.addGroup(statusPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
C:\example\example\src\example\ExampleView.java:191: package javax.swing.LayoutStyle does not exist
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
C:\example\example\src\example\ExampleView.java:191: cannot find symbol
symbol : class GroupLayout
location: package javax.swing
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
C:\example\example\src\example\ExampleView.java:190: cannot find symbol
symbol : class GroupLayout
location: package javax.swing
.addComponent(statusPanelSeparator, javax.swing.GroupLayout.PREFERRED_SIZE, 2, javax.swing.GroupLayout.PREFERRED_SIZE)
C:\example\example\src\example\ExampleView.java:190: cannot find symbol
symbol : class GroupLayout
location: package javax.swing
.addComponent(statusPanelSeparator, javax.swing.GroupLayout.PREFERRED_SIZE, 2, javax.swing.GroupLayout.PREFERRED_SIZE)
C:\example\example\src\example\ExampleView.java:188: package javax.swing.GroupLayout does not exist
statusPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
Note: C:\example\example\src\example\ExampleView.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
44 errors
BUILD FAILED (total time: 0 seconds)

28 01 2009
frago

@David: mm seguro que no borraste algo del codigo generado por netbeans? porque la clase ExampleAboutBox.java esa es generada automaticamente por el netbeans.

Lo que te recomiendo es que generes un nuevo proyecto y le añadas la clase SQLConnection generada en este post…debe funcionar ;)

saludos!!

1 02 2009
Israel

No me funciono me marca error pero no se si es por el driver de jdbc.

Este es el error

java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver
Exception in thread “AWT-EventQueue-0″ java.lang.Error: java.lang.reflect.InvocationTargetException
at org.jdesktop.application.ApplicationAction.actionFailed(ApplicationAction.java:859)
at org.jdesktop.application.ApplicationAction.noProxyActionPerformed(ApplicationAction.java:665)
at org.jdesktop.application.ApplicationAction.actionPerformed(ApplicationAction.java:698)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
at java.awt.Component.processMouseEvent(Component.java:6134)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5899)
at java.awt.Container.processEvent(Container.java:2023)
at java.awt.Component.dispatchEventImpl(Component.java:4501)
at java.awt.Container.dispatchEventImpl(Container.java:2081)
at java.awt.Component.dispatchEvent(Component.java:4331)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4301)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3965)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3895)
at java.awt.Container.dispatchEventImpl(Container.java:2067)
at java.awt.Window.dispatchEventImpl(Window.java:2458)
at java.awt.Component.dispatchEvent(Component.java:4331)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jdesktop.application.ApplicationAction.noProxyActionPerformed(ApplicationAction.java:662)
… 27 more
Caused by: java.lang.NullPointerException
at example.SQLconnection.consultar(SQLconnection.java:92)
at example.ExampleView.prueba(ExampleView.java:212)
… 32 more

2 02 2009
frago

@Israel: si…ese error es porque el programa no encuentra el driver de coneccion a la base de datos, verificaque lo agregaste correctamente ;)

12 02 2009
Gris...

Hola. yo estoy probando tu ejemplo y no me marca ningun erro, pero cuando lo depuro posiciono el cursor sobre las sentincias después de haberlas pasado claro esta:
en
Class.forName(“org.gjt.mm.mysql.Driver”); // class.forName >Unknown type “forName”<

supongo que por eso no me regresa la conexión, por que después de
conn = DriverManager.getConnection(url, user, password);
coloco el cursor sobre conn y obtengo conn=null;

yo agrege la libreria
mysql-connector-java.5.1.7-bin.jar
hice la misma prueba pero ahora colocando
Class.forName(“com.mysql.jdbc.Driver”); y en este caso agrege la libreria MYSQL JDBC Driver mysql-connector-java.5.1.5-bin.jar

por favor si puedes ayudarme

gracias de todas formas por la idea planteada en el este post

31 03 2009
Javier

Muy interesante tu ejemplo, pero tengo tres preguntas :

1ª – como ejecutas “public void prueba() throws Exception{” donde se configura para que al presionar el boton ejecute.

2ª – Cuales son las partes que no pueden faltar en una clase, (Lo que requiere para que no de error)

3ª – ¿No es necesario cerrar la coneccion?, Como haces para manejar el es cerrado.

Gracias por el ejemplo.

11 04 2009
jorge

con respesto a tu codigo si yol e agrego dos texfield como peudo obtener los datos de esos cuadres de tewsto y comprobar q el suario ya esta .. de manera grafica con el netbenas;)

19 04 2009
frago

@jorge: para extraer el valor de los textefield puedes usar la propiedad getText()…por ejemplo:

jTextField1.getText();

eso te devuelve un String con el valor que tenga el cuadro de texto

24 04 2009
wasuaje

Hermano un saludo, interesante tu post, ero necesito ir un paso adelante estoy trabajando en lo mismo pero con un clase visual, me explico, creé una clase con un conjunto de botones esta clase recibe como parametros varios arreglos uno con el nombre de la tabla y sus campos, otro con los controles de la clase (formulario) y los nombres de las etiquetas que la llama (por asi decirlo).
de manera que inicio el formulario, en un container instancio la clase de los botones, con todos estos parametros, pero como puedo hacer para tener acceso a la clase padre y no solo eso sino a sus componentes (cajas de texto, etc).
gracias de todas maneras

5 05 2009
Alejandro

HOla, bueno he estado buscando muchos ejemplor por la red, de como conectar netbeans con my sql, me encontre el tuyo la verdad no le entiendo soy primero en java nunca me habia metido con java para nada, y pues me pidieron un proyecto donde tengo que usar swing, mi idea era crear un traductor de verbos, y almacenar la bd en mysql, y solo hacer una consulta del verbo que quiero que se muestre en ingles, claro siempre y este en la bd, la bd ya la tengo, pero no logro hacer la conexión, hice la bd con appserver, porq tambien trabajo con php, bueno en fin, quiero saber si podrias ayudarme en como realizar la conexion de una manera detallada ya q en mi vida habia manejado netbeans y desconosco totalmente el ambiente .

Ojala puedas se te agradeceria mucho!

16 05 2009
heberth

hola frago

me podrias dar tu email para contactarme contigo

gracias por el post

Deja un comentario