Diferencia entre revisiones de «Prog Acceso a base de datos relacionales»
Ir a la navegación
Ir a la búsqueda
| Línea 28: | Línea 28: | ||
=Trabajando contra una base de datos Mysql= | =Trabajando contra una base de datos Mysql= | ||
| + | |||
| + | * Lo primero que tenemos que hacer es realizar una conexión a la base de datos. | ||
| + | : Entre los datos que vamos a necesitar estarán: | ||
| + | :* Usuario para conectarse a la base de datos con permisos para realizar las operaciones que necesitemos. | ||
| + | :* Password del usuario. | ||
| + | :* Nombre de la base de datos a la que nos vamos a conectar. | ||
| + | :* Nombre del host donde está instalado el servidor Mysql. | ||
| + | :* La cadena de conexión que representa una conexión a un servidor Mysql en JDBC. | ||
| + | |||
| + | |||
| + | * Veamos un ejemplo de código: | ||
| + | ::<syntaxhighlight lang="java" line enclose="div" highlight="11" > | ||
| + | try { | ||
| + | String servidor = "localhost"; | ||
| + | String basedatos = "ejemplo"; | ||
| + | String user = "root"; | ||
| + | String password = "root"; | ||
| + | |||
| + | String husoHorario = "useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC"; | ||
| + | |||
| + | String conexion = String.format("jdbc:mysql://%s/%s?%s",servidor,basedatos,husoHorario); | ||
| + | |||
| + | Connection con = DriverManager.getConnection(conexion,user,password); | ||
| + | |||
| + | |||
| + | } catch (SQLException ex) { | ||
| + | Logger.getLogger(ConsultaSimple.class.getName()).log(Level.SEVERE, null, ex); | ||
| + | } | ||
| + | |||
| + | </syntaxhighlight> | ||
| + | |||
| + | |||
| + | |||
<br /> | <br /> | ||
==Consultas== | ==Consultas== | ||
| + | |||
| + | * Partimos siempre que tenemos definido previamente un objeto de la clase Connection conectado a la base de datos. | ||
| + | |||
| + | |||
| + | |||
| + | * Veamos un ejemplo: | ||
| + | |||
| + | ::<syntaxhighlight lang="java" line enclose="div" highlight="" > | ||
| + | Statement consulta = con.createStatement(); | ||
| + | ResultSet resultados = consulta.executeQuery("SELECT nombre,f_nacimiento FROM alumnos"); | ||
| + | while(resultados.next()) { | ||
| + | Date fechaBD = resultados.getDate("f_nacimiento"); | ||
| + | String fechaSpain = new SimpleDateFormat("dd-MM-yyyy").format(fechaBD); | ||
| + | System.out.printf("Nombre:%s----F_nac:%s%n",resultados.getString("nombre"),fechaSpain); | ||
| + | } | ||
| + | |||
| + | </syntaxhighlight> | ||
<br /> | <br /> | ||
==Inserción== | ==Inserción== | ||
| + | |||
| + | * Partimos siempre que tenemos definido previamente un objeto de la clase Connection conectado a la base de datos. | ||
<br /> | <br /> | ||
==Actualización== | ==Actualización== | ||
| + | |||
| + | * Partimos siempre que tenemos definido previamente un objeto de la clase Connection conectado a la base de datos. | ||
<br /> | <br /> | ||
==Borrado== | ==Borrado== | ||
| + | |||
| + | * Partimos siempre que tenemos definido previamente un objeto de la clase Connection conectado a la base de datos. | ||
| + | |||
Revisión del 15:12 24 abr 2018
Sumario
Introdución
Descargando las librerías para conectar a Mysql
- Debemos ir a este enlace.
- Nota: Estos pasos están probados en un Linux Mint 18 (basado en Ubuntu 16.04) de 64bits.
- Si descargamos el paquete deb, la librerías necesarias se instalarán el el directorio /usr/share/java. El fichero (en este caso) es mysql-connector-java-8.0.11.jar.
- Si queremos desarrollar una aplicación desde NetBeans, debemos de añadir el jar a las librerías del proyecto como vimos en este punto de la wiki.
- Si queremos ejecutar desde consola la aplicación ya compilada (el class) tendremos que modificar la variable de entorno classpath para añadir el jar, como está indicado en este enlace.
- La librería descargada, obliga a que el servidor Mysql tenga establecido el huso horario. Podríamos indicarlo en la cadena de conexión desde el cliente java con la siguiente línea:
- useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
- O bien ejecutar la orden SQL: SET GLOBAL time_zone = '+1:00'
Trabajando contra una base de datos Mysql
- Lo primero que tenemos que hacer es realizar una conexión a la base de datos.
- Entre los datos que vamos a necesitar estarán:
- Usuario para conectarse a la base de datos con permisos para realizar las operaciones que necesitemos.
- Password del usuario.
- Nombre de la base de datos a la que nos vamos a conectar.
- Nombre del host donde está instalado el servidor Mysql.
- La cadena de conexión que representa una conexión a un servidor Mysql en JDBC.
- Veamos un ejemplo de código:
1 try { 2 String servidor = "localhost"; 3 String basedatos = "ejemplo"; 4 String user = "root"; 5 String password = "root"; 6 7 String husoHorario = "useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC"; 8 9 String conexion = String.format("jdbc:mysql://%s/%s?%s",servidor,basedatos,husoHorario); 10 11 Connection con = DriverManager.getConnection(conexion,user,password); 12 13 14 } catch (SQLException ex) { 15 Logger.getLogger(ConsultaSimple.class.getName()).log(Level.SEVERE, null, ex); 16 }
Consultas
- Partimos siempre que tenemos definido previamente un objeto de la clase Connection conectado a la base de datos.
- Veamos un ejemplo:
1 Statement consulta = con.createStatement(); 2 ResultSet resultados = consulta.executeQuery("SELECT nombre,f_nacimiento FROM alumnos"); 3 while(resultados.next()) { 4 Date fechaBD = resultados.getDate("f_nacimiento"); 5 String fechaSpain = new SimpleDateFormat("dd-MM-yyyy").format(fechaBD); 6 System.out.printf("Nombre:%s----F_nac:%s%n",resultados.getString("nombre"),fechaSpain); 7 }
Inserción
- Partimos siempre que tenemos definido previamente un objeto de la clase Connection conectado a la base de datos.
Actualización
- Partimos siempre que tenemos definido previamente un objeto de la clase Connection conectado a la base de datos.
Borrado
- Partimos siempre que tenemos definido previamente un objeto de la clase Connection conectado a la base de datos.
-- Ángel D. Fernández González -- (2017).