
Para poder conectar MySQL con Java vamos a utilizar la tecnología JDBC de Java. JDBC nos permite el acceso a los datos desde un programa Java.
Descrgar el driver MySQL JDBC
Lo primero que necesitaremos para conectar MySQL con Java es descargar los drivers de JDBC que tiene MySQL. Podéis descargar los drivers desde https://dev.mysql.com/downloads/connector/j/
En el caso que estéis utilizando un gestor de dependencias como Maven podéis añadir la siguiente dependencia.
mysql
mysql-connector-java
5.1.6
Lo importante es que el fichero que contiene el driver mysql-connector-java-5.1.6.jar se encuentre dentro del classpath de la aplicación. Ya que iremos a dicho classpath para cargarlo y utilizarlo en nuestro programa.
Cargar el Driver MySQL
Lo siguiente será realizar la conexión a MySQL. Si estás utilizando una versión anterior a JDBC 4, es decir, si utilizas un compilador inferior a JavaSE 7, lo primero que necesitarás será cargar el driver.
Para cargar el driver acudiremos a la clase Class.forName()
, la cual recibirá como parámetro el nombre del driver.
Class.forName("com.mysql.jdbc.Driver").newInstance();
Si estás utilizando Java SE 7 o superior puedes evitar esta línea de código ya que el compilador cargará el Driver automáticamente por nosotros.
Conexión a MySQL desde JDBC
Una vez tengamos el Driver cargado deberemos de conectarnos a la base de datos mediante la clase Connection
y su método .getConnection()
. Dicho método espera una cadena de conexión a la base de datos. La cadena de conexión a MySQL tiene la siguiente estructura:
jdbc:mysql://[host1]:[port1],[host2]:[port2]/[databaseName]?[property1=value1]&[property2=value2]
En nuestro caso simplemente vamos a indicar una máquina, el puerto, que para MySQL suele ser el 3306 y el nombre de la base de datos (que en nuestro caso se llama «lineadecodigo»). De esta manera la cadena de conexión MySQL para JDBC quedaría de la siquiente forma:
jdbc:mysql://localhost:3306/lineadecodigo
Ahora solo tenemos que utilizarla en el método .getConnection()
Connection con = null;
String sURL = "jdbc:mysql://localhost:3306/lineadecodigo";
con = DriverManager.getConnection(sURL,"usuario","password");
Vemos que el segundo y tercer parámetro es el usuario/password de la conexión.
Consulta sobre MySQL
Ya solo nos quedará ejecutar la consulta que queramos sobre nuestra base de datos MySQL, aunque eso ya es harina de otro costal. De todas maneras aquí os dejamos un código de ejemplo de la conexión.
try (PreparedStatement stmt = con.prepareStatement("SELECT country FROM country")) {
ResultSet rs = stmt.executeQuery();
while (rs.next())
System.out.println (rs.getString("country"));
} catch (SQLException sqle) {
System.out.println("Error en la ejecución:"
+ sqle.getErrorCode() + " " + sqle.getMessage());
}
De esta manera ya hemos conseguido conectar MySQL con Java.
Andres Sandi Molina
Crearemos una clase conexión en donde crearemos la conexion
public class Conector {
Connection conn1 = null;
public Conector(){
try {
String url1 = «jdbc:mysql://localhost:3306/»;
String user = «root»;
String password = «»;
conn1 = DriverManager.getConnection(url1, user, password);
if (conn1 != null) {
System.out.println(«Connectedto MYSQL»);
}
} catch (SQLException ex) {
System.out.println(«ERROR:La dirección no es válida o el usuario y clave»);
ex.printStackTrace();
}
}
public void closeConnexion(){
try {
conn1.close();
} catch (SQLException ex) {
System.out.println(«ERROR:al cerrar la conexión»);
ex.printStackTrace();
}
}
}
Por otro lado tendremos crearemos una clase que sera la main donde crearemos la conexion
Conector conect= new Conector();
y para llamar a un metodo lo realizaremos con
Juan Rubio
Necesito que al ejecutar una clase desde línea de comando, encuentre la clase com.mysql.jdbc.Driver, ¿alguien me puede decir como lo tengo que hacer?
Carlos Sánchez
Yo lo hago así:
Primero compilo: javac Inicio.java
Después ejecuto: java -cp .;./mysql-connector-java-5.1.23-bin Inicio.
Donde mysql-connector-java-5.1.23-bin es el nombre de la versión del driver MYSQL y está en la misma carpeta que las clases.
Ya con otra arquitectura de SW varía con respecto a las carpetas.
Jaquelinne
Necistas la URL (direccion) de la base de datos remota y el puerto de conexion, la url debe ser algo como 164.89,17,129 por ejemplo. Cuando tengas ese valor lo sustituyes en el string q provees al DriverManager por ejemplo
«`
String sURL = «jdbc:mysql://164.89.17.29:3306/lineadecodigo»;
«`
Iñigo
¿como se haria para conectar a una base de datos que no este en el mismo ordenador?
ecomsj
cómo se agrega el conector-mysql.jar a la ejecución de una clase por comando consola? es decir ejecutar en un directorio:
java miclase.class
y si esa clase se conecta a la base mysql, no se produzca error de conección.
O si hay que compilar la clase con el conector-mysql.jar? Cómo sería???
david
como puedo hacer para conectar dos maquinas a la misma bd
miguel
Esto ia lo mismo para conectarme a bd mariabd
Víctor Cuervo
Buenas,
De momento te sirve el mismo, pero por si acaso, en el caso de MaríaDB la cadena sería:
Espero que te ayude.
Saludos.
Víctor Cuervo
Hemos creado un artículo explicándolo en https://lineadecodigo.com/java/conectar-a-mariadb-con-java/
Espero que sea de utilidad.
Cristian Uriel
Muy interesante y completa la información de cómo se debe conectar una base de datos
Víctor Cuervo
Nos alegra que sea interesante y completo. Esto nos ayuda a seguir. :-D
juana
mysql y java
juana
me encanta esta pagina