En este ejemplo se va a mostrar como crear una base de datos en MySQL y cómo acceder a sus datos desde una aplicación web Java.
Crear base de datos
En primer lugar hay que instalar MySQL Server http://dev.mysql.com/downloads/mysql/ . En la misma instalación dará la opcion de ejecutar el asistente de configuración de instancia (‘Launch the MySQL Instance Configuration Wizard), marcar la casilla y seguir con la instalación. Para trabajar localmente habría que darle Siguiente en todos los pasos, hasta el apartado de Character set, donde habrá que elegir la utf8 (es el lenguaje universal y no habrá problemas con los caracteres). 2 pasos más en la instalación y aparecerá las opciones de seguridad, ahí habrá que crear una contraseña (en nuestro caso forman) y se habilitará la casilla ‘Enable root access from remote machines’.
Una vez instalado MySQL Server, hay que instalar MySQL Workbench 5.2. CE http://dev.mysql.com/downloads/workbench/5.2.html.
Una vez instalado MySQL Server, hay que instalar MySQL Workbench 5.2. CE http://dev.mysql.com/downloads/workbench/5.2.html.
Con todo instalado, hay que ejecutar el Workbench. Se crea una base de datos con Add Schema y se crean las tablas dentro de él con add table. Cuando se crea una tabla te pide que Engine quieres usar, hay que tener en cuenta que el mejor para bases de datos complejas que permitan por ejemplo transacciones (Routines) o consultas anidadas, se debe usar InnoDB, en caso de ser menos compleja mejor usar MyISAM porque es mucho más rápida.
Uso de la librería MySQL JDBC.
Para hacer uso de base de datos en nuestro proyecto, hay que añadir la librería MySQL JDBC Driver, para ello pulsar con el segundo botón en la carpeta Libraries del proyecto y seleccionar Add Library.
A continuación se muestran distintos Snippets (trozos de código reutilizables) de las principales operaciones que se van a realizar en Java sobre una base de datos:
A continuación se muestran distintos Snippets (trozos de código reutilizables) de las principales operaciones que se van a realizar en Java sobre una base de datos:
- Seleccionar de una base de datos y mostrarla en una tabla
Connection conn=null;Statement stm= null;try { //crear el driver Class.forName("com.mysql.jdbc.Driver").newInstance(); //obtener el manejador conn=DriverManager.getConnection("jdbc:mysql://localhost/agenda", "root", "forman"); //obtener el statement stm= conn.createStatement(); String sql="SELECT idcontactos,nombre,telefono,email FROM contactos WHERE idUsuario='"+idLogeado+"' ORDER BY nombre;"; //ejecutar la consulta ResultSet rst = stm.executeQuery(sql); int contador=0; While(rst.next()) { contador++; if(contador%2!=0){ %> <tr style="background-color:lightcyan"> <% }else{ %> <tr> <% } %> <td width="70%"><!--Nombre--> <h4><%=rst.getString(2) %></h4> </td> <td width="10%"><!--Telefono--> <p><%=rst.getString(3) %></p> </td> <td width="10%"> <a href="BorrarContactoServlet?id=<%=rst.getString(1)%>">Eliminar</a> </td> <td width="10%"> <a href="modificar.jsp?id=<%=rst.getString(1)%>&nombre=<%=rst.getString(2)%>&telefono=<%=rst.getString(3)%>&email=<%=rst.getString(4)%>">Modificar</a> </td> </tr> <% if(contador%2!=0){ %> <tr align="right" style="background-color:lightcyan"> <% }else{ %> <tr align="right"> <% } %> <td><!--Email--> <h4><%=rst.getString(4) %></h4> </td> </tr> <% } if(contador==0){ %> <tr> <td> <p>No hay ningún contacto</p> </td> </tr> <% } stm.close(); }catch(SQLException err){ System.out.println("Error SQLException: "+err.getMessage() +"\n"+err.toString()); }catch(Exception e){ System.out.println(e.getMessage()); }finally{ //cerrar la conexion if (conn!=null){ try{ conn.close(); }catch(Exception e){} } out.close(); }
En rojo se ha marcado el código específico para conectar y abrir la base de datos, y para realizar la consulta SQL. Tener en cuenta que cuando se hace una consulta con SELECT, es recomendable (por eficiencia) especificar siempre los campos que se quieren consultar, no poner un * para que te busque todos cuando algunos serán innecesarios. Despues se muestra en pantalla el resultado de la consulta, recorriéndola fila por fila e imprimiendo en una tabla.
- Realizar acciones CRUD (Create – Read – Update – Delete)
// Crear INSERT INTO Usuarios (Nombre, Apellidos, Correo) VALUES ('Juan Luis', 'Suárez', 'juanluis.suarez@gmail.com'); // Leer SELECT nombre, apellidos, correo FROM Usuarios; //Actualizar UPDATE Usuarios SET nombre='Luisito' where Nombre='Juan Luis'; //Borrar DELETE FROM Usuarios WHERE Nombre='Juan Luis';
- Uso de LIKE y ORDER BY para las búsquedas.
String sql="SELECT idcontactos,nombre,telefono,email FROM contactos WHERE nombre LIKE '%"+request.getParameter("txtBuscar")+"%' ORDER BY nombre;";
No hay comentarios:
Publicar un comentario