/**
* Verifica que los campos del Componente contenedores no estén vacíos.
* @param elComponente Objeto contenedor, puede ser un JFrame u otros componentes similares.
* @return <code>True:</code> Si los campos tienen valores.
**/
public static boolean tieneCamposVacios( Component elComponente ){
if( elComponente instanceof Container )
if( ((Container)elComponente).getComponents().length > 0 )
for (Component elem : ((Container)elComponente).getComponents()) {
if( tieneCamposVasios( elem ) )
return true;
}
if( elComponente instanceof JTextField ){
if( ((JTextField)elComponente).getText().trim().equals("") ){
return true;
}
}
return false;
}
Destinado a tips y cosas relacionadas con el mundo de la programación en .NET y Java, así como bases de datos en SQL Server.
Contenido del Blog
- - [ ¿Cómo excluir la máscara del texto de un control MaskedTextBox de .NET 2008? ]
- - [ ¿Cómo listar las tablas existentes de una BD y cuántos registros tienen c/u? ]
- - [ ¿Cómo listar las tablas existentes de una BD, la cantidad de registros y el espacio ocupado? ]
- - [ ¿Cómo obtener la configuración, la instalación y la información de volcado de memoria en SQL Server 2012? ]
- - [ ¿Cuántas filas retorna un ResultSet? - Java ]
- - [ Aplicativos útiles y gratuitos ]
- - [ Cómo identificar bloqueos en SQL Server ]
- - [ Cómo mostrar los procedimientos almacenados y/o las vistas de una Base de Datos con todo y su código ]
- - [ Encryptación a nivel de columna en SQL Server ]
- - [ esIPv4 en Java ]
- - [ Fragmentación de Índices en SQL Server ]
- - [ isNumeric( String ) en Java ]
- - [ KeePass en distros Debian ]
- - [ Manejo de errores en SQL Server ]
- - [ Manipulación de los datos de un ResultSet en Java ]
- - [ Paginación de filas desde SQL ]
- - [ Procedimiento almacenado en SQL Server para generar contraseñas aleatorias ]
- - [ Script para FullBackup en SQL Server 2008 ]
- - [ tieneCamposVacios( Component ) : boolean - Java ]
- - [ Valor por omisión para una columna de tipo Fecha en MySQL ]
jueves, 9 de abril de 2009
tieneCamposVacios( Component ) : boolean
Algo muy útil es un método que nos permita verificar si un JFrame tiene campos en blanco ( en este caso JTextField ); aquí les dejo un ejemplo básico de como realizar dicha operación y lo más importante es que al ser recursivo verificará para todos los objetos dentro del componente indicado, y si lo desean pueden modificar el método para que verifique también otros tipos de objetos como JFormattedTextField y más, solo deben utilizar su imaginación.
lunes, 6 de abril de 2009
isNumeric( String ) en Java
Algo que también es sumamente sencillo en .Net es poder determinar si un String representa un número. Aquí les dejo un método sencillo para implementar dicha función.
Si lo piensan, en java el tipo de dato numérico más grande es el double, si intentamos convertir el String ingresado en un double y éste nos genera una Excepción, ésto quiere decir que el String no es un número.
/**
* Método que recibe una cadena de caracteres y verifica si éste corresponde a un número.
* @param s String a verificar.
* @return <code>true:</code> Si el String corresponde a un número.
**/
public static boolean isNumeric( String s ){
try{
double y = Double.parseDouble( s );
return true;
}
catch( NumberFormatException err ){
return false;
}
}
Si lo piensan, en java el tipo de dato numérico más grande es el double, si intentamos convertir el String ingresado en un double y éste nos genera una Excepción, ésto quiere decir que el String no es un número.
viernes, 3 de abril de 2009
Manipulación de los datos de un ResultSet en Java
Algo que no me agrada de la manipulación de datos SQL en Java es que algunas cosas que son tan fáciles de realizar en .NET y otros lenguajes de programación, no lo son en Java.
Un ejemplo sencillo de ésto es el poder determinar la cantidad de filas que retorna una consulta SQL en un objeto ResultSet; en muchos foros de programación recomiendan el realizar nuevamente una consulta a la BD con un COUNT pero eso es algo que no me resulta muy funcional, especialmente en BD excesivamente grandes como las que manejo en la empresa (600Gb), piensen: "realizar otra consulta", como que no...
Después de un tiempo logré diseñar una solución que en realidad es muy simple; en Java existe una librería llamada java.util que contiene una clase List, la cual permite agregar objetos a la lista de forma dinámica (como ya saben en java los vectores son de longitud fíja y por esta razón no podemos utilizarla ya que no sabemos la cantidad de filas retornadas), utilizando ésta Clase podemos implementar un método que consulte por ejemplo todos los Empleados de un Departamento X y que este método nos retorne un vector de tipo Empleado con todos los datos extraidos de la BD.
Codigo Ejemplo:
Este es un ejemplo básico y me disculpo si existen errores de sintaxis ya que lo he digitado y programado directamente del Blog y no le he compilado.
Importante: En este ejemplo me he saltado una capa de programación y he agregado la capa de acceso a datos directamente a la capa de lógica de negocios, esto no es recomendable ya que deben de implementar una clase dedicada únicamente al acceso de los datos, conectar-desconectar-ejecutar-consultar, etc...
Un ejemplo sencillo de ésto es el poder determinar la cantidad de filas que retorna una consulta SQL en un objeto ResultSet; en muchos foros de programación recomiendan el realizar nuevamente una consulta a la BD con un COUNT pero eso es algo que no me resulta muy funcional, especialmente en BD excesivamente grandes como las que manejo en la empresa (600Gb), piensen: "realizar otra consulta", como que no...
Después de un tiempo logré diseñar una solución que en realidad es muy simple; en Java existe una librería llamada java.util que contiene una clase List, la cual permite agregar objetos a la lista de forma dinámica (como ya saben en java los vectores son de longitud fíja y por esta razón no podemos utilizarla ya que no sabemos la cantidad de filas retornadas), utilizando ésta Clase podemos implementar un método que consulte por ejemplo todos los Empleados de un Departamento X y que este método nos retorne un vector de tipo Empleado con todos los datos extraidos de la BD.
Codigo Ejemplo:
/**
* Método que recibe el código del Departamento y retorna un vector de tipo Empleado con los datos de éstos.
* @param idDepart Id del departamento del cual se desea extraer la información.
* @return <code>Persona[]</code> Vector de Tipo Persona con los datos de los empleados pertenecientes al departamento.
* @throws java.lang.Exception En caso de cualquier error de ejecución.
*/
public static Emplado[] getEmpleadosX_Departamento( int idDepart ) throws Exception{
try{
/* Configuraciones de conexión. */
String DRIVER_SQL = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String DRIVER_ORACLE = "oracle.jdbc.driver.OracleDriver";
Class.forName( /* Alguno de los dos anteriores. */ );
Connection Cnx = DriverManager.getConnection( /* String de conexión aquí. */ );
Cnx.setAutoCommit( true );
/* Ejecusión de la consulta. */
String strSQL = "SELECT cedula, nombre FROM tbEmpleados WHERE idDept = " + idDepart;
Statement stmt = Cnx.createStatement();
ResultSet rsltEmpleados = stmt.executeQuery( strSQL );
/*
Instanciasión de la Lista.
Como pueden observar al crear la lista se le indica que c/ítem
de la lista es de tipo Empleado.
*/
java.util.List<Empleado> listaEmpleados = new ArrayList<Empleado>();
/*
Se recorre cada fila del ResultSet para instancia a cada empleado y agregarlo a la lista de empleados.
*/
while( rsltEmpleados.next() ){
/* Se instancia del nuevo Empleado. */
Empleado tempEmpleado = new Empleado(
rsltEmpleados.getString( "cedula" ) ),
rsltEmpleados.getString( "nombre" ) )
);
/* Se agrega el empleado a la lista. */
listaEmpleados.add( tempEmpleado );
}
/* Cierre de la conexión con la BD. */
Cnx.close();
/*
Se retorna el contenido de la Lista pero convirtiéndola en vector de tipo Empleado ingresando un nuevo vector de tipo Empleado y esta vez si sabemos el tamaño trayendo el tamaño de la lista.
*/
return listaEmpleados.toArray( new Empleado[ listaEmpleados.size() ] );
}
catch( Exception err ){
throw new Exception(
"Error en getEmpleadosX_Departamento( int ).\nDetalle:\n + " + err.getMessage()
);
}
}
Este es un ejemplo básico y me disculpo si existen errores de sintaxis ya que lo he digitado y programado directamente del Blog y no le he compilado.
Importante: En este ejemplo me he saltado una capa de programación y he agregado la capa de acceso a datos directamente a la capa de lógica de negocios, esto no es recomendable ya que deben de implementar una clase dedicada únicamente al acceso de los datos, conectar-desconectar-ejecutar-consultar, etc...
Etiquetas:
acceso a bases de datos con java,
consultas sql con java,
java SQL programing,
java.sql,
programacion con java,
programacion en java,
ResultSet,
SQL con Java
Suscribirse a:
Entradas (Atom)