Conectar Java con MySQL

Buenas gente, ya termine mis examenes y estoy tratando de ponerme al dia con mis blogs. Hoy quiero explicarles algo muy simple y es como conectar MySQL con Java y realizar las operaciones basicas (borrar,insertar,actualizar y consultar). Esto lo haremos solo en modo consola, no hare una interfaz grafica ya que en primer lugar jamas explique en este blog como hacer un interfaz grafica.

Lo que vamos a hacer sera de gran interes tambien para todos aquellos que estaban o estan siguiendo mi tutorial de javafx, que se quedo en la parte 5, pues pronto explicare como conectar una base de datos MySQL con JavaFX.

Bueno empecemos, primero he de aclarar que estoy usando el IDE NetBeans 6.7.1 y supondre que todos lo usan, si usan Eclipse deberan agregar el driver MySQL-Connector a las librerias de su proyecto. En cambio si usan NetBeans este ya viene listo para usar.

Abrimos NetBeans y creamos un nuevo proyecto (File->New Proyect->Java->Java aplication), y le ponemos un nombre cualquiera, en mi caso se llama "ejemplo".

Ahora antes de empezar debemos agregar el Driver MySQL-Connector a las librerias del proyecto, esto se hace super sencillo. El proyecto recien creado en NetBeans se ve asi:

screenshot_001

Ahora solo tienen que hacer boton derecho en Libraries->Add Library y les aparecera una venta como esta:

screenshot_007

Busquen el que se llama MySQL JDBC Driver y hagan click en Add Library. Bien ahora volvamos a nuestro Main.java, sera necesario que hagamos unos imports.

Les voy a copiar todo el codigo he intetare explicarselos mas abajo:

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;

public class Main {

    static String bd = "javafx";
    static String login = "root";
    static String password = "songoku";
    static String url = "jdbc:mysql://localhost/"+bd;

    public static void main(String[] args) {
//Primera parte - conexion a la base de datos
        Connection conn = null;
        try {
            Class.forName("com.mysql.jdbc.Connection");
            conn = (Connection) DriverManager.getConnection(url, login, password);
            if (conn != null) {
                System.out.println("Conexión a base de datos "+url+" ... Ok");
            }
        }
        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);
        }

//Segunda parte - iteraccion con la base de datos
        Statement s;
        try {
            s =(Statement) conn.createStatement();
            //aqui la sentencia con codigo SQL
            {
                System.out.println (rs.getInt (1) + " " + rs.getString (2)+ " " + rs.getString(3)+ " " + rs.getString(4));
            }
        } catch (SQLException ex) {
            System.out.println("Hubo un problema al intentar obetener lo datos");
        }

    }

}


Enlace para descargar la clase completa.
Como veran todo esta dentro de unos try-catch, esto es asi porque java obliga a que sea asi para evitar errores. De todas maneras supongo que todo el mundo sabe como funciona el try-catch. Ademas quiero que vean lo facil que es conectar Java con MySQL pues las unicas 3 lineas que debemos recordar son las que estan resaltadas.

La sentencia Class.forName nos sirve para asegurarnos que el Driver se inicializa y se registra, es similar a instanciarlo con un new, pero hacerlo con forName tiene una ventaja y es que solo usaremos un Driver si lo usamos, si no lo usamos pues no hara falta tener el .jar con el Driver. Les sera util cuando trabajen con distintos motores de base de datos, por ahora no le den bolilla, es asi y punto.

Como el Driver ya esta cargado ahora solo pediremos una conexion a la clase DriverManager mediante su metodo getConnection. El metodo getConection puede recibir varios parametros pero estos 3 son sufientes para nuestro ejemplo: url, login y password. Yo los puse como variables, estas variables deben ser Strings. Veran que la variable url es una concatenacion de una cadena que es siempre la misma mas el nombre de la base de datos. En esta cadena se podria poner tambien el numero de puesto por el cual conectar pero no creo que necesiten cambiar eso

La linea if (conn != null) solo la usamos para que muestre un mensaje de que la conexion a sido establecida correctamente, eso sucedera siempre que la variable conn sea distinto de null. Bueno luego solo hay un par de catch que todo el mundo sabe lo que hacen.

Eso es todo en cuanto a la conexion, ejecuten y veran el cartel de que la conexion se establece correctamente. Ahora vamos a ver como ejecutar sentencias SQL basicas.

Usaremos la clase Statement de java para enviar consultas. Statement tiene 2 metodos interesantes: executeUpdate y executeQuery. El primero nos permitira enviar consultas que modifiquen la base de datos y el segundo nos permitira hacer consultas. Su uso es muy sencillo pero otra vez java nos pide que todo esto este dentro de un try-catch.

En la linea 35 es donde va a ir la sentencia a ejecutar, si vamos a realizar un executeQuery vamos a guardar el resultado en una variable tipo ResultSet que luego nos servira para recorrer los resultados.

Aqui viene un problema, no con java, sino con mi blog, no me dejaba escribir el codigo, luego quise poner una imagen y tampoco me dejo, luego quise poner un video, pero ni asi. Para ver las sentencias basicas van a tener que bajar la clase completa y fijarse alli. En enlace esta mas arriba.

Una vez que terminemos de hacer lo que deseamos hacer tenemos que cerrar todas las conexiones que abrimos.

Eso lo hacemos facil asi:

conn.close();

Eso es todo, tal vez lo vean un poco largo pero no lo es realmente, una vez que se lo aprendan es super sencillo. Ademas recuerden que esto les servira a los que estan siguiendo el tutorial de JavaFX.
Cualquier cosa me preguntan :penguin:

Se bueno y comparte!
Publicado el Categorías Programacion de Escritorio

Acerca de perro

Casi Ingeniero en Informática. Programador en PHP y Angular. Lo que mas adoro en el mundo es el conocimiento. Y el anime....y Japon...y el basketball...y bloguear claro y algunas otras cientos de cosas. Aun sigo buscando la manera de hacer mi primer millon :)

Comenta!

avatar

Ordenar por:   Nuevos | Viejos | Mas votados
skandelabro
skandelabro
6 años 10 meses atras

Hola men ... Muchas gracias por el ejemplo..peorla verdad es que no me corre
me tira un error

Hubo un problema al intentar conectarse con la base de datos jdbc:mysql://localhost/javafx
Exception in thread "main" java.lang.NullPointerException
at ejemplo.Main.main(Main.java:35)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)

nose que será

ojala me puedas ayudar.. saludos
:)

Gabriel
Gabriel
6 años 9 meses atras

Hola! a mi tmb me tira error en esa linea, tengo winXP SP3 con MySQL server. Saludos y muy bueno todo igual.

nuck
nuck
6 años 8 meses atras
:up: Perfecto, muchas gracias por tu post, uso Linux y tenia dos dias encima tratando de conectar a java con mysql sin resultados...hasta que ya :cool: , pero ahora surgen otros problemas, aclaro que que no uso netbeans para implementar mis codigos. Cuando corro por consola el main ubicado en la carpeta build/classes// , me sale este error acompanado de otros comentarios ...java.lang.NoClassDefFoundError: Main (wrong name: conexion/Main), acaso hay que crear un jar? no se. Por otra parte(me disculparas si estoy abusando) sabrias como hacer esta coneccion sin netbeans?, ya descarge el driver JDBC y al buscar por el sistema,… Leer mas »
perdido en linux
6 años 6 meses atras

Que grande perro

Me salvaste la vida :up:

Y de ya te digo quisas esto se convierta en fuente para uno de mis post.

juan
juan
6 años 5 meses atras

no me aparece la libreria de mysql jdc cdriver como la creo

trackback

[...] mysql, pero la verdad es muy sencillo y es casi igual que como lo hice cuando escribi el post de conectar java con mysql. Por cierto es necesario que vean ese post porque sino no van a entender [...]

enrique
enrique
6 años 4 meses atras

Muchas gracias excelente tutorial, despues de estar intentando instalar el driver en xp no mas no se dejaba no sabia que con netbeans seria tan rapido, lo unico malo es mi maquina ya que apenas puede con el nb. saludos y gracias.

pain_777
pain_777
5 años 8 meses atras

me sirvio mucho ya puedo hacer la conexion a la BD pero no puedo extraer datos de una tabla q alguien me ayude !!!!!!!!!!!!!!!!!!!!!!!gracias

Felipe
Felipe
5 años 7 meses atras

hola.... pues sucede que soy nuevo en esto de la programacion y tengo q aser una interface para Mysql ya tengo la bd con dos usuarios, triggers,claves primarias y foraneas son 5 tablas en total pero necesito aser la interface que pida desde nombre de usuario y contraseña para poder acceder a sus tablas esto por la seguridad de las tablas lo estoy asiendo en ned.. pero lo unico q e logrado es crear una interface para una sola tabla... que puedo aser? espero me puedas ayudar con esto de antemano muchas grasias que estes muy bien..

cristiam gonzalez vergara
cristiam gonzalez vergara
5 años 5 meses atras
amigo he leido mucho sobre como conectar pero ninguno ha solucionado ps mis dudas ayudame y gracias de antemano! yo utilizo netbeans 6.9.1 porque me parece un excelente IDE para toda esta gestión. primero: creo un proyecto nuevo y en el agrego la libre de mysql!! es realmente sencillo. lo explicas muy bien. si tengo agregado a mi libreria este driver-mysql-conection no es necesario agregar un archivo .jar? a mis archivos del proyecto porque en los demás lugares donde he leido ps siempre lo mencionan. segundo: respecto a la base de datos mysql en este momento tengo creada la base… Leer mas »
kev
kev
5 años 4 meses atras

Tan sencillo, esta de poca!!!
Muy bien!!!

Will
Will
5 años 3 meses atras

Compañero, estoy desarrollando una aplicacion en netbeans 6.9.1, ya tengo hecha la conexion con mysql, el problema es que en la aplicacion estoy desarrollando los servicios CRUD, desde cada clase que corresponde a una tabla de la base de datos.
me gustaria saber como puedo utilizar la conexion ya establecida en cada una de esta clases, sin necesidad de escribir nuevamente todo el codigo de la conexion en la clase que la necesite, lo que quiero es silplemente invocar un metodo, o algo asi que me permita ejecutar una sentencia SQL, en donde la necesite.
Le agredeceria su colaboracion.

Gracias.

Jantonio Zu
Jantonio Zu
4 años 7 meses atras

Donde consigo el plugin y como lo instalo estoy usando netbeans 6.8. megustaria saber ayuda gracias.

Oscar
Oscar
4 años 6 meses atras

hola perro HP

Yape
Yape
4 años 5 meses atras

donde declaras el rs del resultset

falcon
falcon
4 años 16 dias atras

hola amigo.. gracias por tu aporte me sirvio de mucho. no tenia ni idea de como conectarme con mysql pero luego de leer tu pot.. se me conecto sin ningun problea..gracias. y para el amigo que dice que no se le conecta y le sale un erro en porq en la parte que dice. static String bd = "javafx"; el javafx es el nombre tu base de datos. asi que tienes que poner el nombre de la base que tu creaste. espero poder ayudar en algo. asi como me fue de ayuda para mi este tutorial.. saludos.. gracias..

sefsinalas
4 años 16 dias atras

Gracias por pasar para ayudar a otros :)

wpDiscuz