viernes, 23 de febrero de 2007

Breves

Crear un Package Java con Console

En la cabecera del archivo.java se anexa la siguiente instrucción:


package directorio_principal.sub_directorio1.subdirectorio_n;

En la consola:

javac -d . archivo.java

Esta instrucción genera los folders y los integra en el calsspath del proyecto, de ahora en adelante compilaremos los archivos java que se deseen incluir en este package de esta forma.


Clases Abstractas

Una clase abstracta tiene la característica de no poder ser instanciada debido a que sus métodos son abstractos es decir aún no han sido implementados o están vacíos para decirlo en una forma más simple, la forma de invocar una clase abstracta es extendiendola e implementando sus métodos en la clase extendida.

martes, 13 de febrero de 2007

MySQL 5.0 en MacOSX

El paquete para MacOSX lo encontre aquí: MySQL 5.0, actualmente tengo instalado Apache 2.0 con PHP 4 y Mysql 4 corriendo en una PowerPc G4 y todo ha ido de maravilla, todo el paquete se puede conseguir en Server Logistics en forma gratuita y su configuración es sumamente sencilla. Ahora toca instalar MySQL 5 para poder invocar Stored Procedures con Java.

Para crear un procedimiento almacenado desde mysql:



mysql> delimiter // (para cambiar ";" por "//")

mysql> CREATE PROCEDURE p (out p int)
-> BEGIN
-> SELECT COUNT(*) INTO p FROM muestra; <- esta tabla existe en la BD -> END//

mysql> delimiter ;

**********************************************************************************
Para crear un Stored Procedure un poco más útil:

mysql> DELIMITER //

mysql> CREATE PROCEDURE inserta(p int(1))
-> BEGIN
-> SET @id = p;
-> SET @muestra = HEX(p);
-> CREATE TABLE muestras(id int(1), muestra varchar(10));
-> INSERT INTO muestras(id, muestra) VALUE(@id, @muestra);
-> END//

Query OK, 0 rows affected (0.00 sec)

mysql> DELIMITER ;
mysql> CALL inserta(1);

Query OK, 1 row affected (0.05 sec)

mysql> SELECT * FROM muestras;
+------+---------+
| id | muestra |
+------+---------+
| 1 | 1 |
+------+---------+
1 row in set (0.00 sec)

Manejo de excepciones con Stored Procedures

mysql-> CREATE PROCEDURE creatabla_m()
BEGIN
DECLARE error_tabla CONDITION FOR SQLSTATE '42S01';
DECLARE CONTINUE HANDLER FOR error_tabla
BEGIN
SELECT 'La tabla muestras ya existe, esta se volvera a crear';
DROP TABLE muestras;
CREATE TABLE muestras(id int(1), muestra varchar(10));
END;
BEGIN
CREATE TABLE muestras(id int(1), muestra varchar(10));

END;
INSERT INTO muestras (id, muestra) VALUES (1, 'nuevo');
END//