Programando con Café

Programando con Café es el lugar de encuentro de todos sus tutoriales de programación que usted necesita en diferentes lenguajes de programación y base de datos

viernes, diciembre 28, 2012

SQL SERVER 2012 - Buscar texto en Tablas

El script lo que hace es buscar un texto en todas tus tablas de la base de datos en SQL Server y decirte exactamente en que Tabla y en que Columna se encuentra el texto que estas buscando


CREATE PROC [dbo]. [GMD_spBuscarTexto]
(
@TextoBuscar nvarchar (100)
)
AS
BEGIN



CREATE TABLE #Resultado (NombreColumna nvarchar(370 ), ValorColumna nvarchar( 3630))

SET NOCOUNT ON

DECLARE @NombreTabla nvarchar( 256), @NombreColumna nvarchar (128), @TextoBuscar2 nvarchar(110 )
SET  @NombreTabla = ''
SET @TextoBuscar2 = QUOTENAME('%' + @TextoBuscar + '%', '''')

WHILE @NombreTabla IS NOT NULL
BEGIN
SET @NombreColumna = ''
SET @NombreTabla =
(
SELECT MIN (QUOTENAME( TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME ))
FROM INFORMATION_SCHEMA .TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
AND QUOTENAME (TABLE_SCHEMA) + '.' + QUOTENAME( TABLE_NAME) > @NombreTabla
AND OBJECTPROPERTY (
OBJECT_ID(
QUOTENAME(TABLE_SCHEMA ) + '.' + QUOTENAME (TABLE_NAME)
), 'IsMSShipped'
       ) = 0
)

WHILE (@NombreTabla IS NOT NULL) AND (@NombreColumna IS NOT NULL)
BEGIN
SET @NombreColumna =
(
SELECT MIN (QUOTENAME( COLUMN_NAME))
FROM INFORMATION_SCHEMA .COLUMNS
WHERE TABLE_SCHEMA = PARSENAME(@NombreTabla , 2)
AND TABLE_NAME = PARSENAME(@NombreTabla , 1)
AND DATA_TYPE IN ('char', 'varchar', 'nchar', 'nvarchar', 'uniqueidentifier')
AND QUOTENAME (COLUMN_NAME) > @NombreColumna
)

IF @NombreColumna IS NOT NULL
BEGIN
INSERT INTO #Resultado
EXEC
(
'SELECT ''' + @NombreTabla + '.' + @NombreColumna + ''', LEFT(' + @NombreColumna + ', 3630)
FROM ' + @NombreTabla + ' (NOLOCK) ' +
' WHERE ' + @NombreColumna + ' LIKE ' + @TextoBuscar2
)
END
END
END

SELECT NombreColumna , ValorColumna FROM #Resultado ORDER BY NombreColumna
END


A continuación el resultado de ejecutar el query















Espero que les sea de utilidad como lo fue para mi ... Hasta una próxima oportunidad

lunes, diciembre 10, 2012

JAVA - APLICACIÓN WEB CON HIBERNATE, SPRING Y ZK PARTE V - CAPA WEB

Capítulos



1. Entorno



  • Eclipse Juno
  • JDK 1.6 - 31
  • ZK CE
  • MySQL 5.0
  • MySQL Query Browser
  • Springframework 3.1.0


2. Desarrollo



En el capítulo anterior vimos como configurar la Capa Web de la aplicación, ahora desarrollaremos las paginas para dar mantenimiento a la tabla producto.

Lo primero que debemos de realizar es crear dos paquetes que utilizaremos en la capa web. El paquete "com.programandoconcafe.zk.controller" contendrá los controladores de las paginas y el paquete "com.programandoconcafe.zk.bean" contendrá el bean para trabajar con la pagina.















Luego crearemos el bean, que lo llamaremos "ProductoBean"















El bean contendrá los atributos necesarios que se utilizaran en la pantallas















De ahí se crearan los controladores, es una buena practica cuando se utiliza el patrón MVC de ZK, crear tantos controladores por pagina que tengamos. Por ejemplo si en nuestra aplicación tenemos 10 paginas, deberíamos de tener 10 controladores. Ahora pasaremos a detallar cada notación que usaremos en el controlador.


  • @VariableResolver(DelegatingVariableResolver.class): Esta notación sirve para reemplazar a la notación @Controller de spring.
  • @WireVariable: Cuando queremos realizar inyecciones ha atributos variables
  • @Wire: Sirve para obtener información de los componentes de la pantalla. Los atributos despues de @Wire tiene que tener el mismo nombre que el componente de la pantalla. Por ejemplo, si en mi pantalla cree una caja de texto con nombre txtCodigo, deberia de tener una variable "@Wire private TextBox txtCodigo".
  • @Listen("onClick = #btnEliminar"): Esta notación indica que cuando se ejecute el evento "onClick" del botón con el nombre "btnEliminar" , se debería de ejecutar el método que tiene dicha referencia en el controlador.















Creamos tambien el controlador para la pantalla "producto.zul"















Y finalmente creamos dos paginas para dar mantenimiento a nuestra tabla. Para aprender mas de cada componente de ZK pueden visitar la documentación oficial de ZK de la siguiente URL http://www.zkoss.org/zkdemo/getting_started 
















Para ver mas detalle de cada linea de código, pueden bajar el código fuente haciendo click AQUI







domingo, diciembre 09, 2012

JAVA - APLICACIÓN WEB CON HIBERNATE, SPRING Y ZK PARTE IV - CONFIGURACIÓN CAPA WEB

Capítulos



1. Entorno



  • Eclipse Juno
  • JDK 1.6 - 31
  • ZK CE
  • MySQL 5.0
  • MySQL Query Browser
  • Springframework 3.1.0


2. Desarrollo




En esta parte del tutorial se creara la capa web, que es la encargada de comunicarse con el Cliente y pasar la información a la capa core.
Para ello lo primero que debemos de hacer es crear un proyecto en Eclipse, para ello nos vamos a “File -> New -> Other”






















Crearemos un proyecto del tipo Maven















Le decimos a Eclipse, que cree una simple estructura del proyecto Maven





















Como nombre al proyecto le pondremos "ProductoWeb" que sera del tipo "war"





















Modificamos el archivo POM para utilizar las librerías que utilizaremos en el proyecto. Este archivo lo podrán bajar junto con todo el proyecto al final. En cada librería se agrego un comentario para que sepan que hace cada uno.















En la carpeta "WEB-INF" creamos el archivo "dbConfig.xml" que contendrá la información de conexión con la base de datos.















En la misma carpeta crearemos el archivo "applicationContext.xml", que contiene la configuración básica del Spring y se conectara con el archivo anterior.















El ZK pide que también tengamos un archivo que se llame "zk.xml", donde esta la configuración solo del ZK
















Dentro de la carpeta "resource" creamos el archivo "log4j.properties" que es la configuración para manejar el log de la aplicación















Y finalmente creamos el archivo "web.xml" dentro de la carpeta "WEB-INF". En este archivo agregamos la configuración del Spring, del log y del ZK.
















Crearemos el paquete "com.programandoconcafe.zk.test" donde le agregaremos la prueba unitaria para comprobar los métodos de la capa Core















La clase que crearemos se llamara "ProductoTest", donde se crearan los métodos para testear los métodos expuestos por el servicio.


  • @RunWith(SpringJUnit4ClassRunner.class) --> Le dice que la clase se testeara usando spring
  • @ContextConfiguration(locations = { "file:src/main/webapp/WEB-INF/applicationContext.xml" }) --> Le dice a la clase la ubicación del archivo "applicationContext.xml" que es necesario para Spring 
















Para probar que realmente la configuración del ZK este bien, crearemos una pagina "index.zul". Para ello hacemos clic derecho en "webapp" y seleccionamos la opción "New -> Other"














Seleccionamos "zul" y presionamos "Next"















Como nombre le pondremos "index.zul"













Y nos mostrara el siguiente código, es algo sencillo pero nos sirve para comprobar que la configuración del ZK que estamos haciendo esta OK.















Para descargar la aplicación pueden hacer clic AQUI

3. Solución



Un vídeo que explica como ejecutar las pruebas unitarias y correr el archivo "index.zul"


JAVA - APLICACIÓN WEB CON HIBERNATE, SPRING Y ZK PARTE III - CAPA CORE

Capítulos



1. Entorno




  • Eclipse Juno
  • JDK 1.6 - 31
  • ZK CE
  • MySQL 5.0
  • MySQL Query Browser
  • Springframework 3.1.0


2. Desarrollo




En esta parte del tutorial se creara la capa core, que es la encargada de comunicarse con la base de datos y hacer todos los procesos de inserción, actualización, eliminación y consulta.
Para ello lo primero que debemos de hacer es crear un proyecto en Eclipse, para ello nos vamos a “File -> New -> Other”


















Crearemos un proyecto del tipo Maven













Le decimos a Eclipse, que cree una simple estructura del proyecto Maven


















Como nombre al proyecto le pondremos "ProductoCore" que sera del tipo "Jar"  


















Creamos los siguientes paquetes

  • com.programandoconcafe.zk.entity: Donde se encontrara la entidad mapeada desde la base de datos, esta entidad lo pueden hacer utilizando cualquier utilitario.
  • com.programandoconcafe.zk.dao: Se registraran las clases que se comunicara con la base de datos.
  • com.programandoconcafe.zk.business: Se registraran las clases que comprendan lógica de negocio.
  • com.programandoconcafe.zk.service: Se registraran las clases que expondran un servicio del spring















Modificamos el archivo POM para utilizar las librerías que utilizaremos en el proyecto, el archivo lo pueden descargar haciendo clic AQUI















De ahí creamos las entidades, las entidades son clases que nos sirve para mapear nuestra estructura de tablas con clases Java. Para saber como crear esta clase pueden hacer clic AQUI















Creamos nuestra interfaz "ProductoDao", que es la clase que nos servirá de contrato para su implementación. Quizás en este proyecto no se vea su utilidad, pero en una aplicación empresarial es bueno tenerlo separado.















Creamos la clase que implementara el "ProductoDao" y lo llamaremos "ProductoDaoImpl". Esta clase sera el repositorio(@Repository) de la interfaz anterior y sus métodos Insertar, Actualizar y Eliminar siempre estarán dentro de una transacción (@Transactional)
















Cuando se tiene terminado las clases de la capa Dao, se puede empezar a crear las clases de la capa de negocio. En esta capa por ejemplo se define los valores, formulas, etc que pertenece a la lógica de negocio de la empresa.















De la misma forma que creamos, en el Dao una clase que nos servirá de contrato, en la capa de servicio también debemos de crear una interfaz y lo llamaremos "ProductoService"















Y de ahí creamos la clase que implementara esta interfaz y lo llamaremos "ProductoServiceImpl", que sera la encargada de comunicarse con la capa de negocio.















Y finalmente, como todo proyecto JPA se tiene que crear el archivo "persistence.xml" dentro de la carpeta META-INF















Para descargar este proyecto, puede hacerlo haciendo clic AQUI

JAVA - APLICACIÓN WEB CON HIBERNATE, SPRING Y ZK PARTE II - BASE DE DATOS

Capítulos



1. Entorno



  • Eclipse Juno
  • JDK 1.6 - 31
  • ZK CE
  • MySQL 5.0
  • MySQL Query Browser


2. Desarrollo


En esta parte del tutorial, crearemos la base de datos que usaremos para los demás capítulos. La base de datos lo crearemos en MySQL. Para la creación de la base de datos usaremos un IDE que nos facilita su creación, que es el MySQL Query Browser.
Cuando entramos al MySQL Query Browser, hacemos clic derecho en la pestaña de esquemas y seleccionamos "Create new Schema"















Le pondremos como nombre "bdproducto"















Para crear la base de datos, hacemos clic derecho en el esquema creado "bdproducto" y seleccionamos la opción "Create new table"













La tabla tendrá las columnas Codigo, Nombre, Precio, Tipo y Habilitado. Los tipos de datos de las columnas serán las que se muestran en la figura siguiente
















El script de creación de la base de datos es la siguiente











Y si lo desean descargar pueden hacer clic AQUI

JAVA - APLICACIÓN WEB CON HIBERNATE, SPRING Y ZK PARTE I - INTRODUCCIÓN A ZK

Capítulos



1. Entorno



  • Eclipse Juno
  • JDK 1.6 - 31
  • ZK CE


2. Introducción


ZK es un framework de código abierto para desarrollar aplicaciones web con Ajax. El núcleo de ZK es un mecanismo conducido por eventos basado en AJAX, sustentado sobre 70 componentes XUL y 80 componentes XHTML, y un lenguaje de marcación para diseñar interfaces de usuario. Los programadores diseñan las páginas de su aplicación en componentes XUL/XHTML ricos en características, y los manipulan con eventos disparados por la actividad del usuario final. Es similar al modelo de programación encontrado en las aplicaciones basadas en GUI de escritorio.

ZK ofrece tres tipos de versiones para su desarrollo CE, PE y EE. La versión que es gratuita es la CE. Para ver las diferencias pueden entrar a la siguiente ruta: http://www.zkoss.org/whyzk/Features

Ademas hay dos formas o patrones para implementar ZK.

Uno de ellos es MVC, para poder ver la explicación mas detallada ingresar a la siguiente ruta: http://www.zkoss.org/zkdemo/getting_started/mvc











Y el otro es MVVM, para poder ver la explicación mas detallada ingresar a la siguiente ruta: http://www.zkoss.org/zkdemo/getting_started/mvvm











El ejemplo que desarrollaremos en todo es tutorial esta basado usando el patrón de MVC.

3. Desarrollo


En esta parte del tutorial se explicara como instalar y configurar el Eclipse para poder desarrollar aplicaciones usando ZK. Para ello abrimos el eclipse y nos vamos al menú “Help --> Eclipse Markelplace”













En la pestaña que nos sale escribimos ZK y presionamos el botón Buscar. Seleccionamos la opción ZK Studio y presionamos el botón Install.



















Nos pide que confirmemos la instalación y presionamos el botón Next



















Aceptamos la licencia



















Y después de eso comenzara a instalarse el plugin del ZK en Eclipse













Cuando se termina la instalación del plugin, el Eclipse se reiniciara y al momento de iniciar la aplicación se nos solicitara un Usuario y una Clave, esto sirve para validar que usaremos la versión CE de ZK. En esta parte nosotros crearemos nuestro usuario haciendo clic en el link "Register ZK account"













Llenamos todos los datos necesarios para poder crear nuestra cuenta. Cuando terminan de llenar los datos, le llegara un correo para que active la cuenta que acaba de crear.













Y finalmente cuando ya confirmamos la creación de la cuenta, volvemos a Eclipse y escribimos nuestro usuario con la clave para que confirme la activación.