Mostrando entradas con la etiqueta java. Mostrar todas las entradas
Mostrando entradas con la etiqueta java. Mostrar todas las entradas

domingo, 1 de junio de 2008

Compilado De Tips Java Usando Net Beans

A continuación una breve referencia de algunos tips útiles utilizando el IDE Net Beans.


NAVEGACÍON ENTRE PÁGINAS

La navegación entre las páginas se puede realizar de manera simple graficando el flujo de navegación de páginas. De este modo podemos realizar la estructura de navegación de la página usando un editor grafico sin tocar el código de las páginas Web.


El editor grafico genera la estructura de navegación plasmada en un archivo XML y el modo de funcionamiento se hace a través del valor de retorno del método controlador del evento Action, los controles que manejen el evento Action se pueden usar para acceder a las diferentes paginas que conformen nuestro sitio, controles como : hiperlinks, botones, etc.













En esta imagen se puede apreciar el valor de retorno Informe Inventario , esta cadena es la que determina la pagina a la cual se redireccionara el navegador.






VARIABLES DE APLICACIÓN,SESION Y REQUEST



Las variables de aplicación sesión y sesión son un concepto web usada en la mayoría de tecnologías web conocidas como: ASP.Net, php, ASP Clásico, etc. Estas básicamente hacen posible sobrellevar una restricción web típica: El hecho de que en web no se conserva el estado. A continuación una descripción de cada una:


  • Variables de Aplicación: El valor de las variables de este tipo es visibles por todos los usuarios de una aplicación web.
  • Variables de sesión: El valor de las variables de sesión solo son visibles por un usuario en particular.
  • Variables de Request: Variables que solo están disponibles entre cada petición de pagina, luego de cada petición el valor se pierde.

¿Como se declaran?



La declaracion de variables de este ambito (aplicacion,sesion y request) se hace en clases que heredan de AbstractApplicationBean, AbstractSessionBean,AbstractRequestBean respectibamente.


NetBeans incluye las clases que heredan de estas clases abstractas al crear un proyecto web, la forma de ir hasta ellas es navegando a travez del explorador de proyectos como se muestra en la imagen.



Para declarar las variables basta con acceder a la clase indicada para nuestra necesidad y declarar dentro de ella un miembro publico.


Como se usan?


Net beans provee el acceso a estas variables de manera simple usando los siguientes metodos de acceso:


  • getApplicationBean1: Este nos da acceso a los miembros publicos declarados en esta clase ApplicationBean1.

  • getSessionBean1: Este nos da acceso a los miembros publicos declarados en la clase SessionBean1.
  • getRequestBean1: Este nos da acceso a los miembros publicos declarados en la clase RequestBean1.


En la imagen se puede apreciar el acceso al metodo getApplicationBean1.setProducto y getApplicationBean1.getProducto1 , getProducto1 y setProducto1 son los metodos de acceso a la propiedad Producto1 que previamente se declararon el la clae ApplicationBean1.


















VALIDAR LA INFORMACIÓN Y LA UTILIDAD DE LOS FORMULARIOS VIRTUALES

La validacion tipica de informacion se puede realizar mediante propieadades, de los controles de entrada de datos como el TextField.

A continuacion algunas propiedades tipicamente utilizadas:

  • required: Propiedad buleana, indica si el control debe tener informacion.
  • converter: En esta propiedad se establece el tipo de dato que debe tener el valor ingresado en el campo, si el valor ingresado no es del tipo de dato especificado en esta propiedad no se permitira el ingreso de la informacion. Esta propiedad nos sirve para una tarea muy comun la cual es validar campos numericos, vastaria con elejir el tipo de dato numerico que deseemos como double,int,etc para lograr esto.
Para mostrar el resultado de la validacion de los campos necesitamos un control que visualize estos mensajes, para esto podemos utilizar el control messageGroup , de este modo todas los mensajes de validacion se visualizaran automaticamente en este control.


Formularios virtuales

Cuando hacemos validaciones es comun encontrarnos con que existen botones que no deben participar en la validacion como el boton cancelar, al igual que otros que participan pero parcialmente por ejemplo: al precionar el boton borrar en un formulario de mantenimiento de informacion no deberia importar si hay informacion en el campo nombre porque solo interesa que se halla ingresado la ifnormacion necesaria para borrar: la identificacion.


La forma de establecer los formularios virtuales se hace mediante la opcion del menú contextual Configure Virtual Forms.
En la imagen se pueden apreciar dos los campos Nombre y Apellido junto con los botones Grabar y Eliminar asi como el control messageGroup enunciado previamente.


La operacion grabar debe guardar ambos campos mientras que la operacion eliminar debe solo requerir que se ingrese el nombre(para este caso de ejemplo)




por tanto existen dos formularios virtuales diferenciados por los colores verde y azul, el formulario azul contiene los campos Nombre y Apellido junto con el boton Grabar mientras que el formulario verde solo contine el boton Eliminar y el campo Nombre.





Configuracion de los formularios virtuales

Una alternativa para crear o configurar un formulario virtual es seleccionar cada control que queremos que participe en el formulario y luego acceder a la opcion de configuracion del menu contextual (Imagen de arriba).

Al acceder la opcion de configuracion del formulario podemos:



  • Crear un nuevo formulario virtual
  • Establecer las opciones de participacion de los campos y botones en este.

Un control en un formualrio virtual puede participar o hacer submit. Participar indica si el control va a ser validado, tipicament esto aplica para las cajas de texto o controles d eingreso de ifnormacion y puede hacer submit, lo cual indica que el control envia informacion, esto se usa para los controles submit como los botones. En la imagen se puede apreciar que el boton btnGuardar hace Submit en el formualrio azul el cual es el que contine toda la informacion que será guardada.



ACCESO A BASES DE DATOS

El acceso a las bases de datos se hace mediante las interfaces provistas por los paquetes java.sql, algunas de las interfaces y clases de utilidad encontradas dentro de este paquete son:

  • Connection: representa la conexion con el motor de bases de datos y provee metodos para interactuar con esta.


  • DriverManager: Esta clase es la encargada de retornar el objeto adecuado para el motor de bases de datos que queramos usar, la interfaz Connection no funcionaria por si sola si no se retorna una instancia del objeto de conexion, para esto esta clase cuenta con un metodo estatico llamado getConnection el cual retorna el objeto para el motor de base de datos que necesitemos.
  • PreparedStatement: Sirve para realizaar una accion en la base de datos como la llamada a un stored procedure que retorna o modifica datos.
  • ResultSet: Almacena datos retornados por un objeto PreparedStatement.

Agregar el driver del motor de bases de datos


Para acceder un motor de bases de datos es necesario contar con el driver adecuado. Normalmente cada fabricante fabrica su propio motor de acceso a datos.


Para agregar el driver de aceso a datos podemos irnos a las propiedades del proyecto y en la categoria de Libraries dar clik en el boton Add Jar/Folder para seleccionar el archivo correspondiente.















Conexion a SQL Server:

Para acceder a sql server por ejemplo se debe especificar una cadena conexion y utilizar la sentencia Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver") como se muestra acontinuacion.

String mCadenaConexion = "mi cadena de conexion";
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection con = DriverManager.getConnection();

Nota: Se debe contar con el driver de acceso a sql para esto.


Modificación de datos

Antes de realizar una modificacion de datos es necesario 'cargar' el objeto PreparedStament por medio del metodo prepareStament del objeto conexion, este recibe la sentencia sql que queremos usar(como un stored procedure) y retorna el objeto PreparedStament.
Para ejecutar una sentencia SQL que modifique datos(ingresar o modificar) se debe usar el metodo executeUpdate del objeto PreparedStatement.

En el siguiente ejemplo se usa una clase helper llamada Conexion que ebstrae la logica de conexion y retorna el objeto Connection (Descita previamente),ademas note el uso del método setString para establecer el valor de cada parametro del Stored Procedure.


public Boolean Modificar(String pCodigo, String pNombre, String pApellido)
{
Boolean lReturn = false; //Variable de retorno

try {

Conexion cx = new Conexion(); //Instancia de la clase personalizada Conexion
Connection con = cx.Conectar();
PreparedStatement pst;

pst = con.prepareStatement("{call dbo.sptblEstudiantes_Edit(?, ?, ?)}");

pst.setString(1, "12345");
pst.setString(2, "pepito");
pst.setString(3, "perez");

pst.executeUpdate();
lReturn = true;
con.close();

} catch (SQLException ex) {
lReturn = false;
Logger.getLogger(Estudiantes.class.getName()).log(Level.SEVERE, null, ex);
}

return lReturn;
}


Consulta de datos

La consulta de datos se realiza de una manera muy similar a la modificacion de datos con excepcion de que el metodo de retorno de datos es executeQuery en vez de executeUpdate (metodo utilizado para ingresar o modificar datos). Tambien se utiliza el objeto para almacenar los datos consultados llamado ResultSet como se muestra a continuacion.

public EstudiantesBean GetByID( {
EstudiantesBean lReturn = new EstudiantesBean();

try
{
Conexion cx = new Conexion();
Connection con = cx.Conectar();
PreparedStatement pst;
ResultSet rs;

pst = con.prepareStatement("{call dbo.sptblEstudiantes_GetByID(?)}");
pst.setString(1,"12345");
rs= pst.executeQuery();

if(rs.next())
{
lReturn.setCodigo(rs.getString(1));
lReturn.setNombre(rs.getString(2));
lReturn.setApellido(rs.getString(3));
}
else
{
lReturn = null;
}

con.close();
}
catch (SQLException ex) {
Logger.getLogger(Estudiantes.class.getName()).log(Level.SEVERE, null, ex);
}

return lReturn;
}


Observe como el valor retornado por el metodo executeQuery es almacenado en el objeto ResultSet ademas de que el resto del codigo es muy similar al codigo usado para modificar.



CONCLUSIÓN

NetBeans es un buen IDE para el desarrollo web sobre java, ofreciendo variadas herramientas para mejorar la productividad en tareas comunmente realizadas.


AUTORES


Jorge A Henao
Andres Bravo toro