jueves, 28 de mayo de 2009

Fecha Actual en Español con Java











Podemos obtener la fecha actual en java mediante tres sencillos pasos:


Paso 1. Crear un formateador que será un objeto SimpleDateFormat. Como parámetros le pasaremos el formato de la fecha y el idioma (objeto Locale):


   SimpleDateFormat formateador = new SimpleDateFormat("dd 'de' MMMM 'de' yyyy", new Locale("es_ES"));

A continuación se indica cómo formatear los días, meses y años:


Año


"yy" -> "03″

"yyyy" -> "2003″


Mes


"M" -> "7″

"M" -> "12″

"MM" -> "07″

"MMM" -> "Jul"

"MMMM" -> "Deciembre"


Día del mes


"d" -> "3″

"dd" -> "03″


Paso 2. Crear un objeto Date:


   Date fechaDate = new Date();


Paso 3. Formatear la fecha usando el formateador y pasándole como argumento el objeto Date:


   String fecha=formateador.format(fechaDate);

El ejemplo completo quedaría así:


   import java.text.SimpleDateFormat;
   import java.util.Date;
   import java.util.Locale;

   public class Principal {
   public static void main(String[] args) {
   SimpleDateFormat formateador = new SimpleDateFormat(
   "dd 'de' MMMM 'de' yyyy", new Locale("es_ES"));
   Date fechaDate = new Date();
   String fecha = formateador.format(fechaDate);
   System.out.println(fecha);
   }
   } 




Resultado


Lo que obtendremos será de este tipo:


12 de Junio de 2009




martes, 26 de mayo de 2009

Montar una Unidad automáticamente al Iniciar Ubuntu

Si teneis vuestros documentos en una partición distinta a la de linux, ésto os puede servir. Se trata de ahorrarnos el paso de montar dicha unidad cada vez que iniciemos Ubuntu.




Manos a la obra


Miramos cómo se llama la partición a montar:




sudo fdisk -l


En mi caso sería /dev/sda2:


montarUnidad.png


Creamos una carpeta en /media/ con el nombre windows (o el que queramos).


Editamos el archivo /etc/fstab






sudo gedit /etc/fstab


Y añadimos la siguiente entrada, siendo /dev/sdaX la unidad a montar:




/dev/sdaX /media/windows ntfs auto,umask=0 0 0


En mi caso sería:




/dev/sda2 /media/windows ntfs auto,umask=0 0 0


Ahora cada vez que arranquemos nuestro Ubuntu nos aparecerá la unidad montada.


Icono unidad Ubuntu




jueves, 21 de mayo de 2009

Filtrado de Lista Desplegable en JavaScript

Cuando tenemos una lista desplegable con muchas entradas se hace lenta la selección. Vamos dar una solución que sea más usable, para ello vamos a filtrar dichas entradas. Se van a mostrar dos ejemplos, uno en el que se filtra por la subcadena inicial y otro en el que se filtra por cualquier subcadena.




Filtrado por la subcadena inicial


Partiendo de los siguientes controles y su respectivo código:


lista desplegable






<html>
<head>
<script language="JavaScript">
var i;
function addOpt(oCntrl, sTxt, sVal, sCnd){
if (sTxt.substr(0, sCnd.length).toUpperCase() == sCnd.toUpperCase()){
var selOpcion=new Option(sTxt, sVal);
eval(oCntrl.options[i++]=selOpcion);
}
}
function cambia(oCntrl){
var txtVal = document.frm.txt.value;
while(oCntrl.length > 0) oCntrl.options[0]=null;
i = 0;
oCntrl.clear;
addOpt(oCntrl, "Ciudad de Mexico", "0", txtVal);
addOpt(oCntrl, "Ciudad de Panama", "0", txtVal);
addOpt(oCntrl, "Ciudad de Guatemala", "0", txtVal);
addOpt(oCntrl, "Caracas", "0", txtVal);
addOpt(oCntrl, "Cancun", "0", txtVal);
addOpt(oCntrl, "Maracay", "0", txtVal);
addOpt(oCntrl, "Maracaibo", "0", txtVal);
addOpt(oCntrl, "Zaragoza", "0", txtVal);
}
</script>
</head>
<body onload="cambia(document.frm.ciudad)">
<form name="frm">
<table border="0">
<tr>
<td>
Ciudad:
</td>
<td>
<input type="text" name="txt" onkeyup="cambia(document.frm.ciudad)">
</td>
<td>
<select name="ciudad">
</select>
</td>
</tr>
</table>
</form>
</body>
</html>



Obtendremos un filtrado por la subcadena inicial:


lista desplegable filtrada 1






Filtrado por cualquier subcadena


Pero si queremos que nos filtre por cualquier subcadena, tendremos que modificar la función addOpt, quedando de la siguiente forma:




function addOpt(oCntrl, sTxt, sVal, sCnd){
if (sTxt.substr(sTxt.indexOf(sCnd), sCnd.length).toUpperCase() == sCnd.toUpperCase()){
var selOpcion=new Option(sTxt, sVal);
eval(oCntrl.options[i++]=selOpcion);
}
}



Lo que hace ese código es buscar desde que aparece la cadena introducida hasta el final. El resultado sería éste:


lista desplegable filtrada 2




Creación Automática de Tablas en Hibernate


Icono de hibernate


hbm2ddl.auto


En el archivo hibernate.cfg.xml existe la propiedad hbm2ddl.auto que resulta muy útil. Nos va a permitir crear las tablas en la BBDD a partir de los .hbm (archivos de mapeo de hibernate).


Se colocará antes de la declaración de los mapeos:





...
<property name="hbm2ddl.auto">create</property>




<mapping resource="es/felipe/compañia/Conductor.hbm.xml" />
<mapping resource="es/felipe/compañia/Autobus.hbm.xml" />
...




Los valores que puede tomar son los siguientes:



  • create - Crea las tablas.

  • update - Actualiza las tablas si ha habido modificaciones.

  • create-drop - Borra las tablas existentes y las crea de nuevo.


Si sólo vamos a añadir datos sin modificar las tablas, lo ideal es ponerla a update.


Éstas operaciones se realizarán sobre el esquema que indiquemos en la propiedad connection.url.





<hibernate-configuration>

<session-factory>
<!-- Database connection settings -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost/hibernate4</property>
<property name="connection.username">root</property>
<property name="connection.password">123123</property>
...




Felinfo: Java, Linux, Virtualización. Open Source.  ©Template Blogger Green by Dicas Blogger .

TOPO