Java – Un resumen organizado….o no.

Llevo escribiendo artículos sobre Java, programación  de Java, entorno de Java… demasiado tiempo, y como ahora estoy preparando un curso de dicho tema, se me ha ocurrido hacer una especie de indice de lo que llevo publicado para que tanto vosotros como yo, podamos acudir a un tema concreto. Esto también me ha permitido detectar duplicados y faltas, por lo que deberé seguir ampliando la colección…. en cuanto pueda, incluso darle formato de libro…..ya veremos; de momento os dejo este indice Sigue leyendo

Publicado en Formacion, Java | Deja un comentario

PHP – Presentacion del curso

Mucho tiempo ha pasado desde que en 1994 se le ocurrió a Rasmus Lerdof “inventar” un lenguaje para la creación de sitios webs dinámicos, y como era una especie de pequeña herramienta para construir HTML, lo llamo PHP (PHP Hipertext preprocesor), y supongo que no llego a pensar en la importancia que tendria unos años mas tarde ese lenguaje. Pero aquí estamos, y hoy nos costaría mucho imaginarnos la web sin su existencia. Cierto es que hay otros lenguajes de servidor, pero PHP es el mas barato y, hoy por hoy el mas extendido, de forma que vamos a ver como se escribe un programa en él. Sigue leyendo

Publicado en Desarrollo Web, PHP y MySQL/MariaDB | 2 comentarios

Tu máquina de desarrollo. Instalando LAMP

Días atrás, os explicaba como instalar un servidor web en vuestra maquina de desarrollo bajo windows. Como poco a poco Linux penetra en nuestro mundo, hoy os comento como instalar un servidor web en vuestra maquina Linux: LAMP. Sigue leyendo

Publicado en Desarrollo Web, Linux | Etiquetado , , , , , | 1 comentario

HTML5 – Presentacion

Desde 1998 en que finaliza el desarrollo de HTML (4.0) han venido sucediéndose una serie de operaciones para establecer un nuevo estándar web. El XML primero, y su consecuente XHTML fue una buena apuesta, pero su posible sucesor el XHTML 2.0, cuyo desarrollo se abandona a finales del 2009, fue un fracaso. Eso obliga al W3C a buscar un nuevo camino, y lo encuentra retomando un trabajo iniciado por WHATWG  (Mozilla, Opera, Apple, Google…) sobre 2004 como variante a la linea de W3C.

Con todo ello, se anuncia en 2012 la recomendación candidata de Html5 y se prevee para 2020 la recomendación final.

En el curso que empezamos hoy, vamos a explicar que es HTML5HTML5_logo_and_wordmark.svg Sigue leyendo

Publicado en HTML5 | Etiquetado , | 1 comentario

Monta tu propio WordPress….y gratis

Si estáis decididos a probar suerte como webmaster con todas sus consecuencias, os invito a que probeis a instalar un wordpress en tu propio servidor. WordPress es gratuito, luego, si eso lo combinamos con un hosting gratuito…tendremos una interesante plataforma para aprender. Sigue leyendo

Publicado en Desarrollo Web, Divulgacion, Empezando en, WordPress | 3 comentarios

Macros de Excel

Con éste artículo, iniciamos una colección dedicada a la utilización de las hojas de cálculo de Microsoft Excel, y, más concretamente, a la forma que tiene este producto de solucionar y simplificar las tareas repetitivas. Debido a que estos artículos los voy escribiendo a medida que me surge la necesidad, he empezado por una parte de la formación Excel, bastante avanzada, sin embargo, y debido que su aprendizaje tiene mucho mas que ver con la programación que con Excel, pienso que se puede aprender de forma paralela a cualquier otro curso de Excel medio, y ya dejo claro que me comprometo a escribirlo… algún día. Que sea mas pronto o mas tarde, dependerá del trabajo, y de las necesidades de los lectores.

Sigue leyendo

Publicado en Excel, Formacion | Etiquetado , , | Deja un comentario

El patrón MVC

La arquitectura en tres capas

Objetivo:

Compatibilizar aplicaciones web, aplicaciones cliente / servidor y aplicaciones de sobremesa, permitiendo la reutilización del codigo

  • Separar las responsabilidades en distintos niveles
    • Permite aislar los cambios en tecnologías a ciertas capas para reducir el impacto en el sistema total.
  • Aumentar la reutilización del código
    • Cada capa no tiene dependencia con otra, por lo que es más fácil que se pueden reutilizar
  • Aumentar la portabilidad al crear clases con alta cohesión
    • Las clases realizan trabajos especializados y se relacionan con interfaces perfectamente definidas
  • Mejorar el rendimiento.
    • Distribuir las capas entre múltiples sistemas (físicos) puede incrementar la escalabilidad, la tolerancia a fallos y el rendimiento.
  • Aumentar la independencia del hardware

Cuando hablamos de estructura en capas, habitualmente, planteamos tres capas:

  • Persistencia
    • Responsable del acceso a la base de datos para la obtención o grabación de toda la información
  • Lógica de negocios
    • gestionan la lógica empresarial de la aplicación y pueden acceder a los servicios del tercer nivel. La capa de la lógica de aplicación es donde se produce la mayor parte del trabajo de los procesos.
  • Interfaz de usuario
    • permiten al usuario interactuar con los procesos del segundo nivel de forma segura

Los tres niveles deben comunicarse entre ellos. Los protocolos abiertos estándar y las API expuestas simplifican esta comunicación. Puede escribir componentes de cliente en cualquier lenguaje de programación, como Java o C++. Estos clientes se ejecutan en cualquier sistema operativo, comunicándose con la capa de la lógica de la aplicación. Las bases de datos del tercer nivel pueden tener cualquier diseño, si la capa de la aplicación pueda consultarlas y manipularlas. La clave de esta arquitectura es la capa de la lógica de aplicación.

Esta estructura permite p.ej: la reutilización de los controladores, en cualquier entorno:

La ventaja que aporta esta forma de programar es la independencia de las capas; esto significa que cada capa utilizar la tecnología que mejor se adapte al entorno.

Frente a cambios de estructuras…

  • En web, la capa presentación se puede desarrollar con HTML, Javascript,…
  • En cliente-servidor, podemos utilizar Visual Basic, Java, o cualquier tecnología soportada por el cliente
  • En sobremesa, volveríamos a utilizar la tecnología soportada

Frente a cambios de Base de datos

  • Cambiamos la capa de acceso a datos

Cuando se requiere alta disponibilidad o redundancia, podemos hacer que cada capa corra en cualquier número de máquinas distintas

Por último, no se debe confundir capa con nivel; los niveles es la forma en que se distribuyen las capas. Esto es, si todas la capas están en la misma máquina, la aplicación tendrá 1 nivel

Publicado en Desarrollo Web, Divulgacion | Etiquetado | Deja un comentario

Los programas necesarios

Segun venimos diciendo, vamos a instalar en nuestro Debian, los programas necesarios para poder tener una potente y cómoda estación de trabajo que nos ayude a programar, y de momento, el lenguaje escogido es PHP, aunque luego veremos lo fácil que es pasar a cualquier otro.

Vamos a trabajar con un IDE gratuito que se esta transformando casi en un estándar en nuestro mundo; se trata de Eclipse. desarrollado en Java y que no requiere propiamente lo que es una instalación, por lo que resulta muy cómodo tener mas de una version instalada, en función de lo que se quiera hacer….

Lo primero que necesitamos, es instalar un entorno Java

Instalacion de Java

Necesitamos Java porque Eclipse esta desarrollado con ese lenguaje, por lo que primero de todo pasamos a instalarlo, y para ello, dado que nuestro usuario no tiene los permisos necesarios, vamos a subir a “root”

Abrimos un terminal

y utilizamos el comando “su” que nos permite seguir con otro usuario

c

Le deberemos indicar la contraseña…

Nosotros vamos a utilizar la version 8 de OpenJDK; Java como tal, pertenece a Oracle, y en segun que entornos, puede llegar a ser de pago; de forma que….

apt-get install -y openjdk-8-jdk curl wget

Instalamos el JDK, y de paso, dos programas muy utiles:
curl y wget, dos programas que nos permiten descargarnos cualquier cosa desde una web remota

Cuando finalize, podemos comprobar que lo hemos instalado correctamente con

java -version

que nos debe contestar con algo como


Instalación de Eclipse

Ahora ya podemos descargar eclipse, para ello deberemos tener en cuenta si nuestra instalación es de 64bit, y seria

wget http://www.mirrorservice.org/sites/download.eclipse.org/eclipseMirror/technology/epp/downloads/release/2018-12/R/eclipse-php-2018-12-R-linux-gtk-x86_64.tar.gz

Nuestro siguiente paso, sera descompactarlo y dejarlo en el directorio /user

tar -zxvf eclipse-php-2018-12-R-linux-gtk-x86_64.tar.gz -C /usr/

y ahora solo nos queda crear un enlace en el directorio bin, para que podamos verlo como usuario

ln -s /usr/eclipse/eclipse /usr/bin/eclipse

Ya que estamos hablando de disponer de una maquina “comoda”, lo que podriamos hacer es crear el correspondiente icono en nuestra pantalla grafica, y eso no es muy dificil; solo deberemos crear un fichero:

vi /usr/share/applications/eclipse.desktop

e introducir lo siguiente

[Desktop Entry]
Encoding=UTF-8
Name=Eclipse
Comment=Eclipse Photon
Exec=/usr/bin/eclipse
Icon=/usr/eclipse/icon.xpm
Categories=Application;Development;Java;IDE
Version=1.0
Type=Application
Terminal=0

Ahora, ya debéis de disponer de un icono como este

y un doble click iniciara vuestro editor

Instalación de Symfony

Para añadirle a Eclipse las herramientas necesarias, debemos instalar un plugin; lo encontraremos en Marketplace



Podemos buscar Symfony y nos encontraremos con dos entradas, correspondientes al plugin para Symfony y el plugin para trabajar con las plantillas que aporta : Twig

De forma que instalaremos los dos tan solo instalando la primera. Tras pedir las confirmaciones y autorizaciones necesarias, iniciara la instalación. El proceso lo podéis seguir en la parte inferior derecha de la pantalla

Eso significa, que si intentais lanzar la siguiente instalación, no la aceptara hasta que esta finalice.

Instalando Git

Otro de los plugins que será comodo tener instalado, es Git. Se trata de un sistema de control de versiones que ademas puede enlazar con varias plataformas profesionales para guardar el trabajo en la web, como puede ser GitHub.

Como siempre, nos iremos a MarketPlace de Eclipse, que a estas alturas ya debeis estar familiarizado con el, y podemos buscar “git” o, si quereis, directamente “Egit” que será el plugin que utilicemos

Con la instalación que hemos hecho, debería marcar “iNSTALLED”, si no, ya sabéis. Esto mismo pasa con Composer, que la instalación del plugin de Symfony, ya os lo ha hecho

Nuestro siguiente paso es instalar MariaDB, y PHP , y, aunque no es imprescindible, podemos instalar Apache, y así nuestra maquina tambien podra funcionar como un servidor web convencional.

Para ello, podemos cerrar Eclipse y abrir nuestra Terminal, y subir el nivel a “root”

Instalación de MariaDB

Todos estamos acostumbrados a trabajar con MySQL, sin embargo, desde que dicha base de datos está bajo el control de Oracle, unos programadores decidieron lanzar un “fork” don el nombre de MariaDB de tal forma que pudiéramos seguir disponiendo de una base de datos totalmente gratuita, y ahora vamos a instalar dicha version, que vereis que es compatible 100% con MySQL, hasta el punto que algunos comandos, se llaman igual.

Para iniciar la instalación debemos arrancar nuestra terminal y subir a nivel root para hacer:

apt-get -y install mariadb-server mariadb-client

Una vez finalizada la instalación, la podemos hacer un poco mas segura con

mysql_secure_installation

Se inicia un dialogo en el que convendría indicar los siguiente

Con eso ya tenemos nuestra base de datos un poco mas segura

Instalación de Apache

Insisto que este paso no es necesario, ya que para muchas pruebas utilizaremos otra herramienta pero…¿que seria de una maquina de desarrollo sin su servidor Apache?, y como tambien nos sera uti, vamos a instalarlo; para ello, indicamos

apt-get -y install apache2

Al terminar, podeis abrir el navegador, y pedir

http://localhost/

Y os aparecerá

Como respuesta de vuestro nuevo servidor web

Instalacion de PHP7

Ha llegado el momento de asegurarnos que tenemos PHP instalado, para ello, hacemos

apt-get -y install php libapache2-mod-php

Y con eso, instalara la ultima version de php (PHP 7) y su enlace con PHP, a partir de este momento, ya podríamos empezar a escribir paginas php,,,,,

Ahora reiniciamos “apache” para que lea la nueva configuracion con php

service apache2 restart

Comprobando la instalación de PHP

Para tranquilidad, y dada la importancia que tiene este paso, vamos a comprobar que hemos hecho la instalacion correcta, y que “apache” es capaz de gestionar paginas php; para ello, creamos un fichero

nano /var/www/html/info.php

Y dentro ponemos

<?php phpinfo(); ?>

Cerramos con Ctrl-o, Enter y Ctrl-x, y abrimos nuevamente el navegador para escribir

http://localhost/info.php

A lo que nos responderá

Donde podemos ver los detalles de la instalación de PHP realizada

Instalando el soporte PHP para MariaDB

Suponemos que desde PHP queremos poder gestionar la base de datos, y para ello, deberemos instalar algunos módulos mas

apt-get -y install php-mysql php-curl php-gd php-intl php-pear php-imagick php-imap php-mcrypt php-memcache php-pspell php-recode php-sqlite3 php-tidy php-xmlrpc php-xsl

Y volvemos a resetear Apache

service apache2 restart

Instalando PHPMyAdmin

Otra herramienta que vamos a necesitar a menudo, es la que nos permite gestionar la base de datos y las tablas de forma manual

Ahora que ya tenemos Apache, MariaDB, PHP, y los soportes de php para todo el conjunto, podemos instalar un paquete que utiliza la interfaz web para gestionar nuestra BD.

apt-get -y install phpmyadmin

Tras la descarga, solicita el servidor que se utilizara, en nuestro caso, Apache

de forma que lo seleccionamos (pulsando un espacio, aparecerá el asterisco) y con un tab, damos aceptar.

A continuación, nos pide si queremos configurar la BBDD

Cuando nos conectemos, phpMyAdmin se debera conectar a su vez a la base de datos, pero podemos dejar que el cree su contraseña, de forma que a la pantalla

le dejaremos la contraseña en blanco y daremos “Aceptar”, y con eso, terminamos la configuración de phpMyAdmin

Sin embargo, necesitamos un usuario que pueda acceder ala base de datos, y el que tenemos a mano es “root”, por lo que lo creamos

echo "UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root' AND plugin = 'unix_socket';FLUSH PRIVILEGES;" | mysql -u root -p

Para lo que nos pedirá la contraseña de ese usuario, y se la indicamos; ahora, podemos verlo trabajar escribiendo en el navegador

http://localhost/phpmyadmin/

Y cuando indiquemos el usuario (root) y la contraseña

Con lo que, ademas de tener un cómodo IDE para la base de datos, hemos comprobado que la instalación de Apache, PHP, y MariaDB es correcta, y que todos los permisos están bien

Y con eso, tenemos nuestra maquina casi casi a punto, el resto, lo iremos haciendo a medida que se necesite, también para irnos acostumbrando a trabajar Linux

Publicado en Formacion, Linux, PHP y MySQL/MariaDB, SQL, Symfony | Etiquetado , , , , , | 2 comentarios

Instalando Debian

En el articulo anterior, descargabamos Debia; ha llegado el momento de instalarlo.

Para ello, supongo que con el modulo que descargasteis antes, habeis preparado un USB arrancable, o un CD; acordaros de la necesidad que sean de arranque, y no una copiade lo que descargasteis

Tambien, voy a supones que teneis un ordenador al que quereis dotar de sistema operativo, y que en la actualidad esta vacio, o no os importa lo que haya, ya que lo que vamos a describir, a partir de ahora, es como instalar un sistema operativo, como unico componente de un disco….

Nos preparamos, introduciendo el CD o el USB en la unidad adecuada, y encendiendo el equipo.

(Todas las imagenes que comparto a partor de este momento, es de la instalacion que voy a ir realizando, sobre una maquina VirtualHost, Tambien deciros que vamos a instalar una maquina con entorno grafico, luego me tomare libertades para trabajar en ese entorno)

Al arrancar la maquina, recibimos la primera pantalla:

Podemos seleccionar esta opción, y nos aparece:

Seleccionamos el idioma en el que deseamos trabajar. Os invito a que selecciones el idioma para el que vuestro teclado tenga soporte, eso nos hara mas facil trabajar

Tras pulsar en “Continuar”, se nos presenta una nueva pantalla para que indiquemos el pais en el que trabajamos. Tened en cuenta que esta eleccion, hara que se seleccione la zona horaria y el origen de las replicas, junto con algunos detalles mas

Una nueva pulsación en “Continuar” y podremos elegir nuestra configuración de teclado;

Tras establecer la configuración mínima para poder mantener el dialogo, el instalador pasara a solicitar el nombre de la maquina, que luego sera utilizado para su identificación en la red

Toda maquina, puede estar dentro de un dominio. En mi caso, tengo un dominio en internet (recursosformacion.com) y, aunque esta maquina por motivos de seguridad, no va a estar nunca direccionada en internet, me gusta que el ordenador permanezca dentro del dominio, por lo que se lo indicare

En estos momentos, ya seria conveniente que vuestra maquina estuviera conectada a la red; sobre todo, si va a ser por cable

Ahora ha llegado el momento de indicar la contraseña del usuario “root”. Debéis tened en cuenta que ese usuario tiene capacidad para hacer cualquier cosa, por lo que es importante que esa contraseña sea muy segura.

Quiero recordaros, que aunque hemos dicho que este ordenador, nunca estará direccionado en internet, solo significa que utilizando nombres, no se podrá acceder, pero, por motivos de funcionalidad, nuestra maquina siempre estará conectada a internet, y deberemos protegernos con todas las herramientas de que disponemos; LA PRIMERA, LA CONTRASEÑA DE ROOT

La seguridad es tan importante que en aras a no arriesgar el equipo, el siguiente paso que nos pide el instalador, es que creemos un usuario con el que trabajar, para asi, dejar “root” para las funcionalidades imprescindibles, y nosotros, trabajar siempre bajo nuestro usuario.

El instalador pasa a pedir la informacion necesaria para crear nuestro usuario, que será el nombre

el código de usuario que deseamos emplear

y la contraseña con la que se identificara este usuario, una vez mas os invito a que, sin ser paranoicos, creemos una contraseña segura, y que sea facil de recordar, a la vez que no se utilice en otros sitios



Configuramos la zona horaria en la que vamos a trabajar

Nuestro siguiente paso, es establecer nuestra distribución de discos. Si sois novatos en linux, os invito a que utilices el sistema guiado, pero si tenéis un poco de experiencia y ademas teneis mas de un disco en la maquina, podemos fraccionar alguna particion y mandarla a un disco especifico; por ejemplo, la partición “/home” que posiblemente, contenga todo vuestro trabajo, la podriais apartar a un disco independiente, y asi, si teneis que reinstalar, esa partición seguirá valiendo; lo mismo con la partición “/var” que soporta la mayoría del trabajo de ficheros “log’s” podria, tambien ser interesante apartarla a un disco independiente, para mejorar la velocidad del sistema



Otro dia, si os interesa, podemos hablar de la distribución de la información en varios discos, ahora nos vamos a quedar con esa primera opción elegida

El programa de instalacion nos mostrara ahora sobre que disco vamos a realizar el trabajo, en mi caso, como solo tengo uno, no hay problema

Aun nos queda la posibilidad de partir el disco en particiones, y se nos ofrecen las estructuras mas habituales, pero…hacerle caso

“Si no esta seguro, escoja el primero de ellos”

Por fin, os muestra la lista de opciones elegidas, y la particion que va a realizar, y si estamos de acuerdo, Si, ¿verdad?, vamos a pulsar en “Continuar”

Tras un nuevo aviso, (pensad que con esta confirmación, se va a reformatear el disco y tendreis pocas posibilidades de recuperar información) podeis indicar “Si” y se procederá al formateo

A partir de este momento, se instala el sistema base, y sera el que se utilizara para preguntarnos el resto de configuraciones

Como puede que estemos realizando la instalacion con un soporte (o varios) que tienen el sistema operativo completo, nos da la posibilidad de que sigamos introduciendo esos soportes

A partir de este momento, todo lo que necesitemos instalar (o la mayoría) lo obtendremos desde repositorios, De momento, debemos configurar el repositorio origen de Debian

Tened en cuenta, que dada la utilización de esta distribución, la mayoría de países tienen repositorios para que las versiones y mejoras os lleguen lo antes posible; mas adelante, podeis acudir a algunas herramientas existentes que os indican los repositorios mas rapidos, segun vuestra ubicacion, pero mientras tanto, con los de vuestro país, bastaran

Y dentro de vuestro pais, el que mas os guste

El proxy de red que utiliceis…o ninguno

La nueva pantalla que aparece es una petición, para que nuestras selecciones se puedan acumular a estadísticas de uso, y teniendo en cuenta que es totalmente anónimo, creo que es lo mínimo que podemos hacer para colaborar con este importante desarrollo ( y gratuito), de forma, que seleccionamos el “Si”, y a “Continuar”

Si os acordais, habíamos dicho que se instalaba el sistema base, o mínimo, para poder seguir dialogando; ahora que ya hemos parametrizado todo, podemos indicar que deseamos instalar.

De momento, vamos a instalar el entorno de escritorio, en el que selecciono GNOME, aunque es un problema de gustos; si vuestro equipo no dispone de mucha memoria, puede que sea mejor, Xfce, y si disponesi de tiempo y espacio en disco, podeis instalar todos los que queraism para luego irlos seleccionando y quedaros con el que mas os guste

No he marcado “web server” porque lo instalaremos despues, El indicar o no “Servidor de Impresion” dependera de vuestro entorno, SSH acostumbra a ser util, para luego poder acceder desde remoto, y las utilidades estandars….pues eso, mejor instalarlas

Con esto se desencadena la instalación, accediendo al repositorio anteriormente indicado y descargando los paquetes indicados

De forma que, tomaroslo con calma y esperad hasta el final de la instalación

Cuando termina de descargar todo, solicita en donde debe situar el sector de arranque, y a menos que tengais bastante experiencia acerca de como funciona, es mejor que dejeis la opción que os sugiere

Puede que os pida algun dato mas, como el disco en el que debe instalar arranque, solo procurad fiaros de las opciones por defecto, hasta que aparezca esta pantalla, que marcara el fin de la instalación

Tras contestar con “Continuar, el ordenador se reinicia y teneis ya disponible vuestra version de Debian

Tras el nuevo arranque, os solicitara la contraseña del usuario que creasteis y a continuacion, os ofrecera la posibilidad de configurar en unos pocos pasos algunas opciones interesantes

Como , por ejemplo, si hubierais hecho todo eso para recuperar una antigua instalación…

El resto de datos del usuario, como su dirección de correo electronico y datos identificativos

Datos acerca del servidor de correo electrónico, y de como conectarse…

y resto de opciones, hasta que finalice, con el resumen de la cuenta; a partir de ese momento, ya os encontrareis con el escritorio típico de Gnome

Y podemos pasar a la siguiente etapa. para instalar el software necesario en nuestro dia a dia.

Publicado en Formacion, Instalar linux, Linux | Etiquetado | Deja un comentario

Descargando Debian

Vamos a revisar de forma resumida los pasos que tenemos que dar para realizar una instalación de linux

Para este articulo, hemos escogido la distribucion Debian. No hay ningún motivo especial; no es ni mas ni menos que otra distribución, pero todos nos debemos acostumbrar a alguna, y si no hay motivos para escoger una distribución concreta, opto por esta.

Debian te ofrece en su web varias formas de instalación, o de discos para instalacion; despues de decidir si nuestra maquina es de 32 o 64 bits, podemos acudir a su web (https://www.debian.org/distrib/) , y descargar la imagen correspondiente

Si os fijais estoy señalando las imagenes “netinst”. Se trata de imagenes ligeras (menos de 300 Mb) pero que no son completas; sin embargo, si nos vamos a mover en un entorno de red, me gusta mas hacer la instalacion con estas imagenes, y ya se descargara lo que necesite, después de haberlo dicho…

Cuando termine la descarga, podéis crear un CD, ya que es un fichero ISO, o dejarlo en un USB para utilizarlo para arrancar una maquina; en ese momento realizaremos la instalación

La creacion de un USB la puedes hacer con herramientas como UNetbootin, y que en esta web te explican muy bien como funciona… Recuerda, el fichero ISO que has descargado, NO PUEDES copiarlo a USB o a un CD para poder realizar la instalacion, ya que se ha de arrancar desde la unidad seleccionada.

Publicado en Instalar linux, Linux | Etiquetado , | Deja un comentario

Mi máquina de desarrollo…en Linux

Bien, dejémonos de tonterías y excusas, Trabajar con Windows, parece algo sencillo, pero caro. La mayoría de software que encontrareis en ese mundo es de pago, y no empecemos con que vosotros lo teneis gratis…eso se llama robar…y si no es necesario… ¿porque practicarlo?; por otra parte, los requerimientos a nivel de procesador, disco y memoria que tiene Windows, siguen siendo muy importantes. Entonces…¿porque no buscar algo mas sencillo?

Durante este , y espero que , próximos artículos, vamos a centrarnos en software Linux, y así, cuando pasemos a desarrollar para Raspberry, ya estaremos acostumbrados a trabajar con este fabuloso S.O.

Primero descargaremos Debian, hay muchas otras definiciones de Linux, basicamente yo trabajo con tres;

  • Debian
  • Ubuntu
  • Centos

Y para este tutorial, he elegido Debian; veras que adaptarlo a cualquier otra distribución es muy sencillo…

Los pasos que vamos a dar para realizar este trabajo son:

  1. Descargar Debian
  2. Instalar el sistema operativo y los programas necesarios
    • Apache
    • Mysql
    • PHP
    • Eclipse
    • Composer
    • Symphony
    • Git
    • y…algunas herramientas mas
  3. Configuracion del entorno
  4. Una aplicacion para probar todo esto

Como podéis suponer, el escribir todo esto, me va a llevar unos dias, y como ademas lo tengo que combinar con la preparación de curso que debo impartir, puede que no sea muy rápido; pero….lo terminare

Publicado en Divulgacion, Formacion, Instalar linux, Linux, PHP y MySQL/MariaDB | Etiquetado , , , , | 2 comentarios

Ejercicio Java. Trabajando con una Base de datos

Como durante la creación de  nuestra base de datos no exigimos integridad, puede que alguien haya creado algún cliente y le haya indicado alguna provincia que no existe, por lo que vamos a escribir un programa que lea toda la tabla de Clientes, y para cada registro, compruebe si existe la provincia que indica en Id_Provincia; si no existiera, debería dar un mensaje, solicitar que indiquen el nombre de la provincia, y lo añada a la base de datos

Para ello, podemos escribir las siguientes clases

ErrorSQL ——————————————————————————————-

Clase para gestión de errores, mínima codificación, Extiende Exception. Los modulos utilizaran esta clase para informar de errores

Conexión: ——————————————————————————————-

Clase para abrir y cerrar la conexión. No se puede instanciar. Dos métodos estáticos.

getConexion() comprueba si la conexión ya está abierta, y si no, la abre. A continuación devuelve un objeto Connection

closeConexion() Tras comprobar que el objeto Connection no es nulo y está abierta, cierra la conexión y deja a nulo el campo de control

ProcesarCliente: ———————————————————————————-

Esta clase será ejecutable y es la que utilizara las clases anteriores para hacer el trabajo pedido. En esta primera versión, las entradas se pueden hacer utilizando Scanner

 

Solucion

Publicado en Formacion, Java | Deja un comentario

Ejercicio Java. Trabajando con una Base de datos(Solución)

ErrorSQL

Se trata de una clase muy sencilla, ya que solo queremos personalizar el error, de forma que bastara con:

 

Conexión

Se trata de organizar un poco lo que vimos anteriormente

La parte visible se compone de todas las constantes necesarias, el constructor y los dos métodos

En getConexion, comprueba se ya existe la conexión, para devolverla sin más, y si no existe, entonces llama al método abrir conexión, y se guarda la conexión abierta, antes de devolverla; asi la siguiente vez, ya la tendrá abierta y la devolverá directamente

En método closeConexion se asegura que exista el objeto conexión, y que este abierto, si es así, la cierra, y a continuación, deja a null la variable para que el método getConexion funcione correctamente si lo llaman.

Por último, el método abrirConexion es muy semejante al escrito anteriormente, pero interceptando los errores, para devolverlo como ErrorSQL

ProcesarClientes

Esta es la clase de arranque, empezamos definiendo los literales y las variables que vamos a necesitar

Preparamos ordenes SQL para leer la tabla de Clientes, para leer un registro de Provincia y para grabar un registro de Provincia. Estos dos últimos con “?” para poder sustituir luego

A continuación cargamos variables y hacemos el preproceso

Abrimos Scanner sobre la consola para poder pedir datos (28), solicitamos una conexión (34), cargamos los PreparedStatement para leer provincias e insertarlas (35,36) y realizamos el SELECT sobre clientes consiguiendo el ResultSet (39,41)

Siguiente paso. Bucle de lectura/proceso

Toda la lectura la hacemos dentro del bucle while que esta entre 50 y 66, y para cada registro, extraemos el id_provincia (51, el nombre(52) y la población(53) para facilitarlo como información, al pedir la provincia. La línea 64, solo sirve para comprobar que todo funciona.

En la line 55 utilizamos el método verProvincia al que le pasamos el id_provincia y devolverá true si existe, y false si no existe

Si la prueba devuelve false, llamamos al método actualizarProvincia que pide los datos por teclado y realiza un insert en la BBDD

El párrafo que va de la 60 a la 66 utiliza la cláusula finally para cerrar la conexión a la BBDD

A continuación el método verProvincia

Le añade el id_provincia al PreparedStatement que ya tenía (77) y lanza la query; si lo encuentra, la pregunta isBeforeFirst le dará true, por lo que modificara el boleano y lo retornara

Por ultimo para realizar la actualización, tenemos este método

En las líneas  98 a 102, realiza el dialogo para la petición de información

En las líneas  105 a 107 prepara la orden de Insert y en la 108 hacemos el Insert.

Notas:

En las líneas  81 y 109 no podemos cerrar el PreparedStatement, a menos que queramos repetir la orden de las líneas  35 y 36

No vamos cerrando los objetos de forma explícita, porque cuando cerramos la base de datos, automáticamente se cierran todos los objetos que cuelgan de esa conexión.

Publicado en Sin categoría | Deja un comentario

Java para programadores (10.5) – Ejecución de consultas y Resultsets

Una vez hecha la conexión, podemos empezar a lanzar órdenes sobre la base de datos; para hacerlo necesitamos un:

  • Statement – Nos permite lanzar consultas a la base de datos.
  • PreparedStatement – Nos permite guardar consultas con parámetros variables, que podremos modificar antes de ejecutarlas.

Cuando terminemos de utilizar uno de estos objetos, deberemos utilizar su método close() para liberar los recursos que haya podido reservar.

Trabajando con Statemen

Esta clase tiene tres métodos

  • executeQuery – Ejecuta la orden SQL dada y devuelve un objeto ResultSet con el conjunto de filas y columnas seleccionadas. Solo utilizaremos este método para las ordenes SELECT
  • executeUpdate – Ejecuta la orden SQL dada pero solo devuelve un int con el número de filas afectadas. Utilizaremos este método para cualquier orden, menos la SELECT
  • execute – Devuelve True si se ha conseguido un Resultset, si no, devuelve False. Deberemos utilizar este método cuando no conozcamos el contenido del SQL por lo que no podamos tomar la decisión de utilizar executeQuery o executeUpdate.

Si queremos realizar un Insert, podemos hacer:

Y nos devolverá en result el número de filas afectadas, 1 en este caso

Si queremos realizar un SELECT para obtener la lista de todas las provincias, haremos

Trabajando con PreparedStatemen

Esta clase tiene mucha semejanza con Statement, por lo que tiene sus mismos tres métodos para ejecutar querys (executeQuery, executeUpdate, y execute.

La diferencia reside en que podemos dejar preparada la query, pero dejando variables por resolver, que las cumplimentaremos con los valores que nos interés.

Por ejemplo, si necesitamos seleccionar una provincia en concreto, podríamos hacer:

Pero esto solo nos permitiría seleccionar la provincia 1. Con PreparedStatement  podemos hacer:

Y cuando lo necesitáramos, haríamos

Incorporando los parámetros que habíamos dejado con un ‘?’

Para ello disponemos de los métodos necesarios para los tipos de java (setInt, setFloat, setDouble, setString,…..) , que reciben dos parámetros el primero es un int que indica la posición que se va a sustituir, y el segundo es el valor a sustituir. En nuestro ejemplo, hemos sustituido el primer (1) interrogante, por el valor2

Manipulación de resultados con ResultSet

El objeto Resultset representa en nuestro programa, el resultado de un SELECT, por lo que tiene acceso a todas las filas y columnas seleccionadas

Realmente, este objeto, en un momento determinado, solo tiene acceso a todas las columnas de UNA fila de nuestra consulta, por lo que deberemos ir haciendo avanzar el ResutSet, para poder acceder a toda la información.

Cuando hemos terminado de crearlo con un SELECT, Resultset está apuntando a una fila inexistente, por lo que para poder leer la primera fila, deberemos avanzar una, y eso lo haremos con next(). Un objeto ResultSet, por defecto, solo se puede mover hacia adelante.

Después de cada orden, deberemos comprobar si se ha llegado al final de la selección, controlando que no de false. Luego, ya podemos leer su información, utilizando el método adecuado. Aquí tenemos un ejemplo de cómo podríamos leer nuestra tabla de Provincias y volcar la información en la consola.

Este objeto también dispone de métodos para recoger cualquier tipo java (getInt, getDouble, getString), y en cada caso, deberemos indicar el nombre de la columna que deseamos obtener.

Cuando el Resultset es “scrollable” (que se puede desplazar atrás y adelante), disponemos de métodos para hacer avanzar el puntero de resultset al primer registro, al ultimo, avanzar de uno en uno, adelante y atras… Naturalmente, esto hace mas lenta la operación, por lo que solo escogeremos esta posibilidad, cuando lo necesitemos.

Para que un resultset  sea  scrollable, deberemos usar un Statement creado para esa funcionalidad con

Y si es con PreparedStatement, deberemos hacer (en el ejemplo anterior)

Este tiene la posibilidad de poder cambiar su posición con

previous() Vuelve a la posición que estaba antes del ultimo next()
first() Va a la primera posición del actual conjunto
beforeFist() Deja el cursor en el mismo punto que estaba tras realizar el SELECT, esto es, apuntando a un punto justamente anterior al primer registro.
last() Se posiciona en el último registro de este conjunto
absolute(int fila) Se posiciona en el registro indicado por “fila” contando desde el principio del conjunto
relative(int fila) Se mueve tantas filas como indique “fila”, que puede ser positivo o negativo.
getRow() Devuelve el número de fila (registro) actual

 

Tambien podemos preguntar por la posición del cursor con

isFirst() Indica si el cursor está en la primera fila de resultados
isLast() Indica si el cursor está en la ultima fila de resultados
isBeforeFirst Indica se está antes de la primera fila , deberemos realizar un next() antes de poder leer las columnas
isAfterLast() Indica si ya se ejecutó el ultimo next(), ya no podemos acceder a información.

 

Hay más información del objeto ResultSet en https://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html

 

Publicado en Formacion, Java, SQL | Etiquetado , | Deja un comentario

Java para programadores (10.4) Conexion a una Base de datos

Para que un programa Java se conecte a una base de datos, deberá seguir los paso indicados a continuación.

  • Cargar el driver JDBC
  • Indicar la ubicación de la base de datos, por medio de la URL
  • Crear un objeto Connection que será la conexión a la BBDD.

Sigue leyendo

Publicado en Formacion, Java, SQL | Etiquetado | Deja un comentario

Java para programadores (10.3) Bases de datos

Cuando salimos  de entornos propietarios como puede ser Acces, entramos en el gran mundo de las bases de datos, Oracle, MySQL, MsSQL son motores que están a nuestro alcance; y si queremos utilizarlos, debemos saber algunas cosas.

Sigue leyendo

Publicado en Formacion, Java, SQL | Etiquetado , , | Deja un comentario