Generar claves unicas para objetos
java.util.UUID.randomUUID()
Devuelve una clave única para objetos, que puede usarse para guardar los objetos en la base de datos.
java.util.UUID.randomUUID()
Devuelve una clave única para objetos, que puede usarse para guardar los objetos en la base de datos.
Esto es para definir funciones donde quiero variar el numero de parametros cuando la use. En realidad se convierte en un array en tiempo de compilación, pero que se le va a hacer, algo es algo. Además, puntos extra por utilizar un foreach para la demostración.public class Conjunto
{
public Conjunto(String... cadenas)
{
for (String cadena : cadenas)
System.out.println(cadena);
}
public static void main(String... args)
{
Conjunto saludos = new Conjunto("Hola", "Ciao", "Hello");
Conjunto mascotas = new Conjunto("Pulpo");
}
}
Para Agregar el Driver tiene que bajar el archivo ojdbc14.jar (Probe el 16 y no funciona)
Ir al explorar de proyectos (donde esta el arbol con los archivos)
Boton derecho sobre tu proyecto en mi caso INTEGRADOR
Ir a Properties
Ir a JAVA BUILT PATH
Presionar el boton Add External JARs
Selecciona el archivo ojdbc14.jar
Lo que esta en negrita tienen que reemplazarlo por sus datos de conexion
-----------------------
import java.sql.*;
import oracle.jdbc.driver.OracleDriver;
class dbAccess {
public static void main(String args[]) throws SQLException, ClassNotFoundException {
String usr = "user";
String pwd = "password";
String url = "jdbc:oracle:thin:@ip_adress:port/data_base_name";
DriverManager.registerDriver(new OracleDriver());
Connection conn = DriverManager.getConnection(url,usr,pwd);
Statement stmt = conn.createStatement();
ResultSet rset = stmt.executeQuery("select BANNER from SYS.V_$VERSION");
while (rset.next()) {
System.out.println(rset.getString(1));
// Print col 1
}
stmt.close();
}
}
import java.util.ResourceBundle;
public abstract class MyProperties {
private static ResourceBundle myResources;
public static String getProperty(String key){
if(myResources==null){
myResources = ResourceBundle.getBundle("hola");
}
return myResources.getString(key);
}
public static void main(String[] args){
System.out.println(MyProperties.getProperty("titulo"));
}
}
Como base en el ejemplo de JUnit, vamos a ver una forma muy pero muy (pero muy) simple de la utilizacion de esta librería, enviando a un file los resultados de la ejecucion de los metodos de testeo de la clase Math.
La libreria se divide principalmente en 3 clases Logger, de donde obtenemos el objeto que generará los mensajes, Appender quien recibe los mensajes del Logger y los envia a donde le digamos (archivo, consola, mail, base de datos) y Layout donde configuramos el formato visual que tendrán nuestros mensajes.
La clase Logger dispone de varios niveles de prioridad, de menor a mayor:
log.trace("un mensaje");
log.debug("un mensaje");
log.info("un mensaje");
log.warn("un mensaje");
log.error("un mensaje");
log.fatal("un mensaje");
A continuacion el codigo de la clase TestMath modificado solo el 1er metodo:import junit.framework.TestCase;import org.apache.log4j.*;public class TestMath extends TestCase {
static Logger log = Logger.getLogger(TestMath.class);
log.setLevel(Level.INFO); //seteamos el nivel minimo de prioridad de //mensajes
//por debajo de este nivel, no nos llegaran mensajes de logs.
//lo que hacemos luego es crear un objeto Appender, que es el que nos envia
//los logs a donde nosotros le especifiquemos
SimpleLayout miLayout = new SimpleLayout(); //el layout es el formato en...
//...el que se mostraran nuestros mensajes log.
Appender miAppender = new FileAppender(miLayout); //los logs seran enviados //a un File...
log.setAppender(miAppender); //asignamos el appender al log.
protected void setUp() { // put common setup code in here }
protected void tearDown() { // put common cleanup code in here }
public void testAdd() {
int num1 = 3;
int num2 = 2;
int total = 5;
int sum = 0;
sum = Math.add(num1, num2);
assertEquals(sum, total);
log.info("El valor de la suma es: " + total);
log.info("El valor obtenido es: " + sum);
}
public void testMulitply() {
...
}
public void testDivision() {
...
}
}
En forma muy básica este es el uso de la librería Log4J. Que conste que en aplicaciones empresariales de mayor nivel, todo se configura a través de .properties o archivos XML, tanto los layouts como la salida de los logs (consola, archivos, email, o incluso una base de datos).
Mas info:
http://www.developer.com/open/article.php/3097221/Logging-with-log4jmdashAn-Efficient-Way-to-Log-Java-Applications.htm (el mejor, en INGLÉS)
http://www.apuntesdejava.com/2006/02/log4j.html (el mas completo, pero de mayor complejidad)
http://chuwiki.chuidiang.org/index.php?title=Ejemplo_con_log4j (muy bueno tambien)
Teniendo un paquete que se llama MVC, y en ese paquete se encuentro un archivo llamado app.properties
MyProject/src/MVC/app.properties
No importa desde que paquete quiera llamarlo se invoca asi
ResourceBundle myResources = ResourceBundle.getBundle("MVC.app");
NOTAS:
FRAGMENTO DEL ARCHIVO app.properties ------------------------------
#titulo en ingles
title=MVC es un masa
FIN DEL FRAGMENTO DEL ARCHIVO app.properties ------------------------------
Para obtener una propiedad "title" del archivo app.properties se usa
String strTitle = myResources.getString("title");
La cadena strTitle va a contener ahora "MVC es un masa"
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=miPrimeraWebStruts
http://www.youblisher.com/p/54388-Tutorial-introduccion-aplicaciones-web-Tomcat-Eclipse/
Para hacer pruebas unitararias usamos JUnit... la forma de proceder es la siguiente.
Creamos una clase, por ejemplo:
public class Math {
static public int add(int a, int b) {
return a + b;
}
static public int multiply ( int a, int b) {
return a * b;
}
static public int division ( int a, int b) {
return a / b;
}
}
para probar los metodos de la clase anterior se debe crear una clase con los mismos metodos pero seteado valores y tambien agregando el resultado esperado. por ejemplo:
import junit.framework.TestCase;
public class TestMath extends TestCase {
protected void setUp() {
// put common setup code in here
}
protected void tearDown() {
// put common cleanup code in here
}
public void testAdd() {
int num1 = 3;
int num2 = 2;
int total = 5;
int sum = 0;
sum = Math.add(num1, num2);
assertEquals(sum, total);
}
public void testMulitply() {
int num1 = 3;
int num2 = 7;
int total = 21;
int sum = 0;
sum = Math.multiply(num1, num2);
assertEquals("Problem with multiply", sum, total);
}
public void testDivision() {
int num1 = 10;
int num2 = 2;
int total = 5;
int sum = 0;
sum = Math.division(num1, num2);
assertEquals("Problem with division", sum, total);
}
la palabra sentencia "assertEquals" se utiliza para comparar los valores q devuelve el metodo con el deseado.
espero que les guste!!! xoxo :P jaja