jueves, 24 de julio de 2014

acentos, eñes, etc

Procesar  caracteres especiales  en nuestros formularios para almacenarlos en una BD puede ser una tarea frustrante.

Sólo vasta leer una nota como esta: (leer nota) para darse una idea..

Sin embargo existe una solución fácil, que generalmente funciona (depende de algunas configuraciones en tu servidor), y es agregando  el atributo accept-charset="ISO-8859-1" al formulario.


En la imagen se puede observar un registro (id=33) que fue agregado con un formulario "normal" y el registro con id=34 se registró con un formulario que contenía el atributo:  accept-charset="ISO-8859-1".
(VER columna TITULO)

Espero que les sea de utilidad, pueden dejar sus comentarios en caso de que no les funcione.


lunes, 21 de julio de 2014

CRUD

Blog en proceso...

Las operaciones CRUD sobre una BD, son comunes. A pesar de ello, pueden presentarse algunas complicaciones, para su implementación, en usuarios que apenas inician  su formación como programadores y más cuando se tiene que lidiar con tablas relacionadas, tablas que tienen llaves foráneas (FK).






Relaciones

Para un caso didáctico, se presenta la siguiente relacion de una BD parcial para un sistema de control de libros en biblioteca.
No es parte de este post, atender la  normalización de la base de datos,  
por ello no se discutirá si es correcta o no la relación presentada.
El autor de este post, no es el autor de la BD que se utiliza, 
la BD sólo se toma para dar un ejemplo didáctico.

En este post, se da por echo, que el lector es capaz de realizar las operaciones CRUD sobre las tablas autor, area y editorial. Sólo nos centraremos en realizar las operaciones CRUD sobre la tabla libro y por efecto en la tabla escribe.

En la relación se puede apreciar que varios autores pueden serlo para un mismo libro y a su vez que un autor puede ser de uno o más libros.

Cuando se registre un nuevo libro, se deben registrar una o más entradas en la tabla 'escribe' dependiendo del número de autores para tal libro.

Una de las primeras cosas con las que se tiene que iniciar, es determinar cuales son las consultas para la recuperación de información relativa a los libros.


Consultas


  • Consultar todos los libros recuperando el nombre de la editorial y la descripción(nombre) del area:

        ...


  •    conocer los autores de un libro dado el id (libro_id):




Bean

Bean para libro





dao


Servlet


Read


add

viernes, 18 de julio de 2014

exportar contenido de la BD en MS. SQL Server

Trabajando con  Microsoft SQL Server (Management Studio)...

A menudo se realiza una base de datos (bd) en una computadora, se insertan registros de prueba y llega el momento en el que la misma bd con sus registros los necesitamos tener en una computadora distinta.

¿Tiene sentido volver a crear, desde cero, la bd e insertar uno a uno los registros? la mayoría estará de acuerdo en que no.

Los gestores de BD lo saben, y me atrevo a decir que todos (aunque en realidad no lo he confirmado) tienen una opción para exportar nuestras tablas con todo y sus registros. Lamentablemente es común que los usuarios que apenas empiezan a formarse como administradores de BD desconocen tal opción.

Es por lo anterior, que presento el procedimiento para exportar las tablas y registros de nuestra bd en Microsoft SQL Server:


  • Damos clic derecho sobre nuestra bd 
    • Seleccionamos  Tareas/ Generar scripts...




  • Seguimos el asistente


  • Seleccionamos la BD (si es necesario), y activamos la opción de incluir todos los objetos...




  • En el paso de "Elegir opciones de script", la configuración por defecto sólo nos permite exportar las tablas (sin sus registros). Para incluir los registros de nuestras tablas, nos desplazamos a la sección de "Opciones de tabla o vista" y cambiamos a Verdadero la opción de "Incluir datos en el script".


En versiones diferentes, puede encontrarse la opción de "Esquema y datos" (tablas y registros) como una opción de "Tipos de datos que se deben incluir..."

Otra posible vista:


  • Sólo hay que decidir, si queremos el script en el portapapeles (como si lo hubiésemos copiado, ya estará listo para pegarlo en donde necesitemos), en una nueva ventana de consulta (en nuestra misma interfaz Management) o en un archivo. En caso de quererlo en un archivo, debemos especificar la ruta y el nombre del archivo.



  • Seguimos el asistente, y cuando finalice, se mostrará el informe de estado en donde procedemos a "cerrar"  la ventana.




Considerando que se exportó a un archivo, sólo lo recuperamos y nos lo llevamos a cualquier otra computadora, que cuente con SQL server para simular el proceso de importación:

Creamos y seleccionamos la BD e incluimos el script y lo ejecutamos en una "Nueva consulta" de  la computadora donde se requiere la BD.



CREATE DATABASE tuBD;

USE tuBD;

/****** Tu código (script) de las tablas y registros que se encuentran dentro del archivo ******/


El proceso se ha realizado en SQL Server 2008, en versiones distintas los pasos del asistente pueden variar pero en esencia es lo mismo.






blog en proceso...

jueves, 10 de julio de 2014

Recorrer colecciones con JSTL


El contenido de este blog requiere de los conocimientos previos de temas básicos en programación web, utilizando jsp.

Se muestra, de forma breve, como recorrer colecciones con JSTL

En programación web, es común verse en la necesidad de recorrer una colección de elementos (como por ejemplo una lista: List).

Una manera ~ limpia de realizarlo es con el uso de JSTL tomando en cuenta el "grupo" core con su prefijo (por default) c


Desde un ServLet "añadimos" un atributo a request  que tenga el valor de una colección para después en nuestra vista (jsp) podamos recorrer tal atributo (que representa a la colección, lista por ejemplo)



En este caso, la lista que se encuentra representada por el atributo "atributoLista" es una lista cuyos elementos son PersonaBean, este último bajo el siguiente diseño:

A continuación, un bosquejo de como se agregan los elementos a la lista en cuestión.




Descargar proyecto de ejemplo

NOTA:
En caso de no contar con la misma versión de JSTL se deberá corregir eliminando la librería incorrecta y añadiendo la librería correcta (con la que cuentas en tu PC).

 Damos clic derecho al proyecto/propiedades
Categoría: librerías                
Si tiene problemas con la librería comenzará con letras o puntos en color rojo.
Procedemos a seleccionarla con el "mouse" la eliminamos (remove) y agregamos  (add library) la librería JSTL que tengamos en nuestra PC (no importa la versión).


blog en proceso...

sábado, 5 de julio de 2014

dataTables.bootstrap.js en segundos!




La"display tag library" es una suite de código abierto de etiquetas personalizadas, enfocadas al modelado de tablas en una interfaz web en donde se trabaja en un modelo MVC utilizando, por ejemplo, "struts".    
Más información: http://www.displaytag.org/1.2/

dataTables.bootstrap

Una alterativa realmente interesante es el uso de Bootstrap (con sus extensiones) para procesar y personalizar nuestras tablas, utilicemos o no un framework para el modelado MVC.

La idea original se encuentra en  http://www.datatables.net/

dataTables.bootstrap.js


Preparamos nuestro documento para el uso de Bootstrap y dataTables



Aplicamos .dataTable()  a nuestra tabla id=myTable


Es importante el uso de THEAD y de TBODY 
para que funcione .dataTable()
Además el atributo span (con valor mayor a uno) 
o la combinación de celdas no es soportada por .dataTable()


 En este caso además de .dataTable()  inyecto la traducción al español y glyphicon´s para la navegación.




El proyecto de ejemplo, en NetBeans:  descargar

jueves, 3 de julio de 2014

Twitter Bootstrap


Framework o conjunto de herramientas de software libre para diseño de sitios y aplicaciones web. Contiene plantillas de diseño, basado en HTML y CSS, además de extensiones de JavaScript.

http://getbootstrap.com/

http://librosweb.es/bootstrap_3/

http://www.bootply.com/

Una vez que contamos con bootstrap en nuestra aplicación, sin importar el nivel de conocimiento sobre el mismo, seguramente tendrás que realizar un formulario, para ello recomiendo la siguiente aplicación online:

http://bootsnipp.com/forms?version=3

Ahora sólo debemos arrastrar y soltar los elementos que necesitamos en nuestro formulario, así como especificar nuestros valores en los diferentes atributos de los elementos.






Al finalizar el diseño de nuestro formulario, sólo acudimos a la pestaña "Rendered" y seleccionamos y copiamos el código que corresponde al formulario para incorporarlo en nuestra página de proyecto.


miércoles, 2 de julio de 2014

executeQuery() o executeUpdate()



executeQuery()---  para recuperar información de la BD { select, describe, etc...)
executeUpdate()---para operaciones destructivas o que modifican datos {insert,update,delete }
execute()--             cualquier tipo de operación


Cuando utilizamos DAO y nuestra fuente de datos es una BD, es muy común utilizar constantemente la llamada a executeQuery() o executeUpdate() en las operaciones CRUD de cada DAO.

Conviene entonces, declarar métodos estáticos para estas dos operaciones tan recurrentes.
 como mandar a imprimir sout:  System.out.println(objeto);
Se utiliza muy frecuente, imagínate si primero deberíamos
 realizar una composición/instancia para llamar al método println

Apreciarse que el método println se llama ~"directamente" desde su clase System

Así declaramos una clase publica por ejemplo "Executes" y dentro los dos métodos:






Ahora desde cualquier clase, por ejemplo un DAO, llamaríamos a los métodos  de la siguiente manera:
ResultSet rs = Executes.consultar(mandoLaConexión, query);
boolean res = Executes.actualizar(mandoLaConexión, sql);

Claro que debemos importar las clases necesarias...
En Netbeans ctrl + shift + i