Conectar Java con MySQL en NetBeans

1 05 2008

Dentro de unas semanas tendré que desarrollar, junto con un equipo de trabajo, un sistema de un almacen en Java bajo la plataforma de NetBeans. Es por eso que comenzaré a pubicar una serie de post sobre cómo manejar bases de datos de MySQL con Java, y en los cuales poco a poco iré agregando nuevas funcionalidades.

Por ahora solo mostraré cómo realizar la conexión a la base de datos de MySQL.

Para comenzar debemos de tener instalado NetBeans, en lo particular yo tengo instalada la versión 6.0. Posteriormente debemos descargar un Driver o Conector para poder conectarnos a la base de datos. Se puede decir que ese Driver sabe «cómo hablar con la base de datos», yo descargué la versión 5.0.

Una vez descargado el archivo, extraemos los componentes, de estos el archivo que nos interesa es mysql-connector-java-5.0.5-bin.jar , este jar es la clase o Driver que nos permitirá conectarnos a la base de datos.

Ahora tenemos que hacer que esa clase esté accesible para nuestros proyectos, así que la vamos a guardar en la carpeta <DIRECTORIO_DE_JAVA>/jre/lib/ext. Si has realizado una instalación por defecto del NetBeans en Windows, entonces estará en: C:\Archivos de programa\Java\jdk1.6.0_04\jre\lib\ext. En esta carpeta es donde se agregan los jar adicionales, y así ya los tendremos disponibles para cuando necesitemos usarlos de nuevo.

Ahora que ya tenemos el conector a la base de datos pasaremos a la parte del NetBeans:

  1. Creamos un nuevo proyecto: New Project -> Java -> Desktop Application (Basic application).
  2. Agregamos un botón al formulario y le cambiamos su label a «Cargar datos».
  3. Agregamos una nueva clase llamada TestConnection
    import java.sql.*;
    public class TestConnection {
    public String bd = "nombre_bd";
    public String login = "usuario";
    public String password = "contraseña";
    public String url = "jdbc:mysql://localhost/"+bd;
    public void conectar() {
    Connection conn = null;
    try {
    Class.forName("org.gjt.mm.mysql.Driver");
    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("Hubo un problema al intentar conectarse con la base de datos "+url);
    }
    catch(ClassNotFoundException ex) {
    System.out.println(ex);
    }
    }
    }
  4. Hacemos doble clic en el boton «Cargar datos» y colocamos el siguiente código:
    sourcecode language=’java’ [
    TestConnection conexion = new TestConnection();
    conexion.conectar();
  5. ]

Y listo!!!. Con esto ya tenemos realizada la conexión a la base de datos de MySQL

Espero que les sirva!!!

Relacionados:


Acciones

Information

60 responses

6 05 2008
Maza

Si sirve je, muchas gracias che, ahora le voy apegar una hojeadita tu blog, esta entrada me viene de 10…

8 05 2008
Ejecutar SQL en Java « Programación, tecnología, humor, curiosidades…

[…] 8 05 2008 En esta ocasión veremos como ejecutar sentencias SQL en Java, tomando en cuenta la conexión que realizamos a la base de datos […]

10 07 2008
ttorrentte

Hola, me ha servido mucho gracias, estoy empezando a programar con java y se agradecen cosas como estas. Tengo una duda, cuando copie tu codigo al netbeans, me daba unos fallos, el primero las «, que las cambie y sin problemas, cosas del copiar y pegar. Pero el segundo, tuve que poner las variables bd, login, password y url a static, sino no me dejaba compilar. Una vez hecho esto funciona sin problemas. ¿Es fallo mio? Venga, un saludo

10 07 2008
frago

Hola, primero que nada gracias por tu comentario 😛 . Sobre tu duda, creo que tienes razón, es necesario poner las variables como «estaticas», esto es por que los métodos estáticos no tienen acceso a las características no estáticas de una clase. Aunque creo que para solucionar esto es más fácil quitándole el modificador de acceso static, pero este tipo de implementacion de la clase no es correcta, porque los campos nunca deben declararse como públicos, lo que se debe hacer es declararlos como privados y utilizar los metodos setField y getField para modificar sus valores, además debe haber un constructor que reciba los parametros(usuarios, db, contraseña) y que también te permita conectarte a la base de datos, es decir, debe haber sobrecarga en los constructores (esto me lo mencionó un maestro).
Este post lo escribí cuando apenas estaba empezando a aprender java y algo de POO, asi que en breve espero poner una implementación un poco mñas correcta 😛

11 07 2008
ttorrentte

Gracias por la respuesta frago

11 07 2008
luchito

frago, podrias poner relacionado a un boton «buscar» en netbeans?

11 07 2008
frago

@luchito: si, creo que será mejor preparar otro post en el que incluya todas las correcciones que le mencione a ttorrentte y agregarle algunas cosas más, claro que incluyendo lo que me pides. Intentaré tenerlo listo este fin de semana.

22 07 2008
Ejemplo de Java + SQL + Netbeans « Programación, tecnología, humor, curiosidades…

[…] 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 […]

5 11 2008
Diego Gonzales

Hola amigos me gustaria saver como conectar una base de datos MySql con Java esto con un ejemplo corrido en java o mejor si los pueden subir para ver los codigos de los ejemplos q coloquen esto para aprender de ellos por fa so los suben varias personas se los agradeseran amigos.

bueno espero una respuesta.

saludos … pirata3000

5 11 2008
Diego Gonzales

Hola nueva mente aqui seria bueno tambien si pudieran colocar videos tutores esplicando estos aspectos de las conexiones de bd con java eso seria genial amigos y especialmente esto para el dueño de este blog

7 11 2008
frago

Hola Diego, si quieres los ejemplos podría mandartelos a tu correo, igual para la persona que lo solicite 😉 . Aunque yo te recomiendo que veas esta clase para conexión a bd https://fragowb.wordpress.com/2008/07/22/ejemplo-de-java-sql-netbeans/ está mucho mejor jeje. También gracias por tus sugerencias, las tomaré en cuenta, aunque lo de los videotutoriales yo lo veo un poco complicado que pueda hacerlos yo mismo porque no tengo mucho tiempo, pero si me encuentro alguno útil por ahí lo andaré posteando por acá 😛

Saludos!!

27 10 2009
ratapaloma

frago, como veo q atinas bastante con esto, te hago una pregunta. Estoy desarrollando una aplicacion(sistemita de gestion en java) para un empresa pequeña. La aplicacion me anda joya con la base de datos(MySql) anda perfecto(todo instalado en mi maquina) pero como tengo colocar la aplicacion en varias PCs distintas y el motor de base de datos en una sola, no se ¿como hacer para conectar las aplicaciones q estan corriendo en diferentes PCs a la base de datos de otra PC distinta?. Espero por una rta. Saludos

10 11 2008
ramon

hola disculpe las molestias yo quisiera comentarle.. yo estoy tomando el curso de netbeans en java y quisiera que me ayudara un poco ya que la base de datos que yo estoy usando es en microsoft access.y me tienen dejado un trabajo final que es el de agrgar,buscar,modificar,eliminar, quisiera que defavor me ayudaras ya que le entiendo un poco,, gracias

10 11 2008
ramon

disculpe seme olvidaba comentarle el programa que me handejado me lo´piden en un jframe con todo y el diseño y que tenga un boton para cada operacion le agradeseria si me contestara lo mas pronto posible

10 11 2008
ramon

hay respuesta

10 11 2008
frago

Hola Ramon, por cuestiones de tiempo no creo poder elaborar un ejemplo de lo que pides orita pronto, pero te recomiendo que veas este artículo publicado en WebTaller, espero que te sirva

http://www.webtaller.com/construccion/lenguajes/java/lecciones/como_conectar_java_access.php

Saludos!!

13 11 2008
chip86

hola, muy buen ejemplo de coneccion, soy estudiante de ingenieria en sistemas computacionales y estoy haciendo un almacen de productos de una tienda de abarrotes, la verdad soy nuevo en esto, me gustaria ver si me podrias proporcionar un tutorial sobre la base de datos y la programacion, de paso estoy trabajando con netbeans 6.1. de antemano muchas gracias por la ayuda brindada.

13 11 2008
chip86

si alguien sabe de algun ejemplo similar porfavor aganmelo saber
hernandez731@hotmail.com
gracias

13 11 2008
frago

yo ya respondi algo por correo 😛

aguna otra cosa por aqui la dejan

saludos!!

24 11 2010
Yusmari

Estamos realizando un proyecto y necesitamos obtener información de la base de datos para luego realizar una funció de cálculo. Aun no hemos podido hacer una función que nos permita esto, espero que nos pueda ayudar.

26 11 2008
Felipe_Aybar

Hoal, muy buen ejemplo de coneccion de base de datos MySQL.
Tengo q hacer un programa com coneccion a base de datos
Quisiera q me ayude en este problema y no se nada de coneccion recien estoy iniciando en esto quisiera q me ayuden…
el projecto enviarme al correo email
PROBLEMA
Se requiere construir una aplicación para manejar la información de socios de un club. Además de los socios, al club pueden ingresar personas autorizadas por éstos, que hayan sido registradas con anterioridad. Tanto los socios como las personas autorizadas pueden realizar consumos en los restaurantes del club. Cada socio está identificado con su nombre y un código. Una persona autorizada por un socio se identifica únicamente por su nombre. Cuando un socio (o una persona autorizada por el), realiza un consumo en el club, se crea una factura que será cargada a la cuenta del socio. El Club guarda las facturas y permite que en cualquier momento el socio vaya y cancele cualquiera de ellas. Cada factura tiene un concepto que describe el consumo, el valor de lo consumido y el nombre de quien lo hizo.

Les estaria realmente agradecido por su ayudo de anticipado

26 11 2008
Felipe_Aybar

Hala denuevo olvide mi correo

el_demoledor_124@hotmail.com

26 11 2008
frago

@Felipe: no era necesario el correo jeje 😛

27 11 2008
brian

oye voy a implementar una aplicacion donde use la conexion a base de datos es una practica para mi escuela podrias ayudarme en publicar todo el codigo necesario para realizar la conexion entre mysql y netbeans espero tu respuesta ok gracias

27 11 2008
frago

@brian: con ese código es suficiente para conecarte, si requieres algo más podrías ver este otro post https://fragowb.wordpress.com/2008/07/22/ejemplo-de-java-sql-netbeans/

Saludos

3 01 2009
Pitt

Buenas noches, con respecto al problema que menciona arriba Felipe , quisiera saber si ya lo resolvieron , necesito tambien el mismo problema para un exa, final , haber si me pueden apoyar cn ese desarrollo , nota no es nesesario conectar a base de datos , puede ser solo una aplicacion .
gracias .

26 01 2009
genco

Hola, gracias por poner tu codigo, pergunte e investige bastante y creo que la menor manera de crear una clase de conexion que va a ser compartida por varias clases y sobretodo que solo debe exsistir «una y solo una» conexion es usando el patron «singleton» que asegura que solo una instancia de la clase sea usada.
para comenzar esta perfecto, sobretodo para los novatos que algunos se pierden bastante y se desaniman si no les sale a los 10 primeros intentos.
los metodos son los mismos solo que falta un poco de orden. felicitaciones.

26 01 2009
frago

@genco gracias por el comment 😛 , si tienes razón, usando el patrón singleton esto quedaría mucho mejor y seria la manera correcta de implementarla 😀

saludos!!

12 05 2009
Daniel

Hola… estoy aprendiendo java.. ia tengo la conexion con el metodo que pusiste hice la clase y puse el codigo con los datos de mi BD.. en el boton «agrega—dar de altar» puse TestConnection conexion = new TestConnection();
conexion.conectar();

Eso es para la conexion… pero tengo un formulario esta hecho en netbeans.. como hago para que los datos que ingrese al formulario se guarden en la tabla que io le indike de mi base de datos.??? podrias ayudarme

13 05 2009
frago

hola Daniel…para agregar usuarios a la base de datos te recomiendo que cheques este link https://fragowb.wordpress.com/2008/07/22/ejemplo-de-java-sql-netbeans/ 😉

y para que se guarden los datos que introduces en el formulario pues solamente obtienes los datos de los textfield, por ejemplo miTextField.getText y esos datos se los mandas al metodo insertar asi como se muestra en el link que te menciono anteriormente

saludos!!

21 05 2009
Andres Caicedo

La pregunta era para saber de que forma puedo modificar las tablas.

1 11 2009
Jeison Nisperuza

saludos…

Buen aporte para los que iniciamos en java, me a servido mucho para entender la estructura de las clases y como llamarlas…

Gracias…

10 11 2009
guadalupe

hola frago
intente conectar a la base con el código que muestras arriba pero me marca un error en el segundo código (códio boton).ojala puedas ayudarme con eso.
no se si tengo que agregar librerias o algo asi.
saludos.

18 11 2009
miguel

Hola estoy aprendiendo java y tengo una exposicion y nesesito mas informacion

19 12 2009
Saúl

Ooolap a todos amigos en este espacio… es un excelente blog, gracias por todos que hacen posible… soy estudiante de informática y bueno me blog me ha servido mucho sobre todo en finales de semesntre, salu2s a todos

1 03 2010
edwin

Esta muy bien este tutorial si siguen todo paso a paso logran la conexion ahora necesito saber mas hacerca de realizar consultas e inserts = desde java =) gracias!!!

8 03 2010
Joe

hola gracias por tus aportes man…
quisiera que me ayudaras en una cuestion… pues resulta que corri tu codigo y ps me lanzo la primera excepcion la de com.mysql.jdbc.CommunicationsException: Communications link
y pos no se como solucionarlo =(

9 03 2010
Joe

ya lo solucione =)

1 04 2011
yasmin

hola como lo solucionaste

1 04 2011
yasmin

yo tengo error al intentaqr conectar con la base de datos

14 05 2010
andres felipe

hola probe tu codigo y me sirvio muy bueno, pero despues de unos dias quise mostrarle esa conexion a un amigo y ya no me servia me sacaba el error de la sentencia catch quisiera saber si alguno de ustedes puede decirme porque puede ocurrir ese error, lo raro es que antes me funcionaba gracias

31 05 2010
Alvarito

Jovenes, a la hora de poner el codigo en netbeans me aparece como error esta linea
public class TestConnection {

Donde dice que class TestConnection is public, should be declared in a file name named TestConnection.java

Espero puedan ayudarme, gracias.

24 08 2010
Israel

Excelente Articulo me ayudo muchisimo, estaba trabajando en php ya no me acordaba muy bien de java grax.

21 11 2010
Sakazaki

TE AMO WN!

4 12 2010
Matt

fallo amigo k crees que sea el problema, segun java en la declaracion de la clase esta el error… espero tu pronta respuesta

5 01 2011
obed

URGENTE

oye bro q crees ya tengo todos los pasos que mencionas pero no me corre en esta parte

sourcecode language=’java’ []; marca error
como solucionar eso
para poder ver mi base de datos

30 01 2011
manuel

Gracias!! aprendí mucho…

2 03 2011
oscar lopez

Hola esta bueno el material solo tengo una pregunta que es algo tonta. Yo tengo instalado Netbeans 6.9.1 lo tengo en Ubuntu pero por ningún lado veo el directorio UbicacionNetBeans/jre/lib/ext ¿dependiendo de la versión cambia el nombre de el nombre del directorio?

8 03 2011
Cristian Mejia

Excelente codigo tenia dias de tratar de conectarme, pero ningun codigo tan claro como esta…

Muchas gracias

8 03 2011
Cristian Mejia

COMO SERIA EL CODIGO PARA INSERTAR DATOS DESDE UN BOTON

1 04 2011
yasmin

hola disculpa corri tu codigo pero me marca el siguiente error-«hubo un problema al intentar conectar a la base de datos»- por que será. espero respuestas porfa ayudenme

6 04 2011
Rocker

Gracias por el aporte tengo una duda como podria mostrar datos de una tabla en mysql en una lista de neatbeans
Espero puedas ayudarme …ok
morbid_deth@hotmail.com

11 05 2011
jairo

package globalcommunication;
import java.sql.*;
import javax.swing.*;
/**
*
* @author Lombardi Ramos Jairo Ben-Hail
*/
public class conexion
{
String bd=»GlobalCommunication»;
String login=»root»;
String pass=»»;
String url=»jdbc:mysql://localhost:3306/»+bd;
Connection con;
public Connection Conectar()
{
Connection conn=null;
try
{
Class.forName(«com.mysql.jdbc.Driver»).newInstance();
conn=DriverManager.getConnection(url,login,pass);
if(conn!=null)
JOptionPane.showMessageDialog(null, «Conexión exitosa!»);
else
JOptionPane.showMessageDialog(null, «No fue posible hacer la Conexión!»);
}

catch(SQLException ex)
{
JOptionPane.showMessageDialog(null, «Se podujo el siguiente error:»+ex.getMessage());
}

catch(ClassNotFoundException ex)
{
JOptionPane.showMessageDialog(null, «Se podujo el siguiente error:»+ex.getMessage());
}

catch(InstantiationException ex)
{
JOptionPane.showMessageDialog(null, ex.getMessage());
}

catch(IllegalAccessException ex)
{
JOptionPane.showMessageDialog(null, ex.getMessage());
}
return conn;
}

public conexion()
{

}
public static void main(String[] args)
{
conexion conexion = new conexion();
}

}

28 07 2011
messi

Amigo no se porque casi que copie tu mismo codigo pero lo adapte con mi base pero igual me imprime que no se ha hecho la conexion con la base de datos. SI me puedes ayudar mi correo es raiam_93@hotmail.com

10 09 2011
Genio

Buen Aporte Amigo..
Lo Mas claro.. de tantas paginas parecidas que hay.
Gracias.

7 10 2011
Ever2812

buen dia una preguntotota se puede conectar java con mysql pero que la bd este alojada en un servidor?? salu2

10 10 2011
Isabel

Saludos… estoy aprendiendo a programar en jsf con netbeans.. debo hacer una web con acceso a base de datos (MySQL)…
Si me pueden ayudar con todo el material posible les agradeceria un monton…

2 11 2011
Luis Fernando

Hola a todos, he revisado tu código, lo modifiqué un poco según mis necesidades, y funciona perfectamente, el problema consiste que quise acceder a una base de datos que se encuentra en otro computador y no fui capaz, en todos los foros dice que es suficiente con cambiar donde dice «localhost» por el # del ip, pero no me funciona, me sale el siguiente error:

Error Communications link failure

Last packet sent to the server was 0 ms ago.

alguna sugerencia?

14 11 2011
Sakurita Yamileth Per Lei

justo lo que necesitaba!!! 🙂

17 11 2011
MARCOS LEONARDO

NO ENTIENDO LA PARTE DEL BOTON CARGAR DATOS DONDE ES QUE TENGO QUE PEGAR EL CODIGO COMO HAGO

Replica a frago Cancelar la respuesta