lunes, 10 de diciembre de 2012

Insertar Datos en Mysql y Oracle desde C#

Bien siguiendo con el tutorial anterior haremos un ejemplo de como insertar datos a estos 2 gestores usando parámetros en las inserciones y evitando concatenar la consulta.

Haremos uso del proyecto anterior que tiene la conexión hacia Oracle y Mysql el primer paso es crear la base de datos en el caso de Oracle crear la tabla dentro del esquema y en Mysql crear la tabla en una base de datos existente.

Tenemos que crear 4 carpetas mas las cuales son: las utilidades del proyecto las entidades de la base de datos ,los controladores y las vistas.He organizado el proyecto con el patron de desarrollo MVC.Para que separemos las capas de la aplicacion y sea mas facil y ordenado su desarrollo y sus modificaciones posteriores.Y si tambien se puede usar en aplicaciones de escritorio.no lo explicare a fondo MVC en simples palabras el modelo son el reflejo en objetos de tablas de las bases de datos las vistas visualizan el contenido del modelo y el controlador su tarea es "traducir" las interacciones del usuario con la vista, en acciones que el modelo tiene que realizar (código de la lógica de negocio).

En la carpeta entidad tenemos que crear una clase llamada Persona la cual contendra el modelo de la tabla Persona que acabamos de crear creamos todas las columnas de la tabla en propiedades privadas respetando sus tipos de datos.Y creando metodos accesores(get y set) para cada propiedad.

En la carpeta controlador creamos una clase la cual sera una super clase que contendra los metodos para devolver la conexiones llamada AbstractControlador.
En la carpeta Utilidades vamos a crear una clase que se llame Utilidades la cual contendra un metodo estatico para que podamos accesarlo por el nombre de la clase y no por instancia, el metodo retornada un string el cual sera un identificador unico para generar llaves primarias,para esto haremos uso del .Net Framework el cual trae una clase Guid el cual retorna un identificador unico y lo delimitaremos a los caracteres necesarios para nuestra llave primaria en este caso la usaremos con 5 caracteres.Esto mismo lo podemos realizar con una secuencia desde la base de datos.


Volvemos a la carpeta del controlador y creamos una clase PersonaControlador la cual extendera de la  AbstractControlador y tendra un metodo insertarMysql el cual tendra un parametro tipo Persona.
 En esta clase estara encapsulada la logica de insertar un registro la primera linea de codigo se obtiene un objeto conexion el cual ya viene abierto solo para ejecutar transacciones luego creamos un comando para ejecutar una transaccion ,definimos el string de consulta con parametros las @ especifica al compilador que son parametros y debe de existir una especificacion que es lo que hacemos luego de instanciar el objeto con el string de consulta y la conexion.Luego la ejecutamos con ExecuteNonQuery y cerramos la conexion todo este codigo esta dentro de un try catch.

En la carpeta vista tenemos que crear el metodo que pida la informacion desde teclado(en este caso porque es por consola) y con esa informacion llenar el objeto  Persona para luego enviarselo al controlador.
Simple se pide la informacion se llena el objeto y se envia al controlador que hara la logica de insercion y desde el Main instanciamos la clase vista y llamamos a este metodo cabe recalcar que hay que fijarnos muy bien en los using que estan en cada clase y de todas las clases que estan en los diferentes namespace que creamos.
Lo ejecutamos y si hasta aca no da ningun error nos saldra la pantalla negra pidiendo los datos la llenamos una por una y si no da ningun error esta bien.
Y verificamos en la base de datos si he guardado correctamente.
Si has llegado hasta aca felicidades ya pues insertar datos desde c# con parametros a mysql.

El siguiente paso es hacerlo para Oracle aca cambia la sintaxis de la insercion pero la logica es la misma

Nos vamos a nuestra carpeta de controlador y abrimos la clase creada anteriormente y creamos otro metodo el cual nos servira para insertar los datos a Oracle.
Aca cambia la sintaxis pero no la logica ahora obtendremos la conexion de oracle llamaremos al metodo que nos la retorna luego creamos el comando para las transacciones solo que del tipo OracleCommand creamos nuestra consulta en string solo que ahora debes de @ seran : ya que oracle asi reconoce a un parametro dentro de una consulta. luego especificamos los valores de esos parametros y ejecutamos el ExecuteNonQuery y cerramos la conexion a la base de datos todo dentro de un try catch.

En nuestra clase vista tendremos que copiar el metodo anterior pero OJO hay que cambiar el metodo que llama del controlador y por supuesto el nombre del metodo.
En la clase Main llamamos este metodo.
Y si todo esta correctamente hecho nos saldra de nuevo la pantalla negra pidiendo los datos.
Y verificamos que en la base de datos se haya almacenado.
Si has llegado hasta aca veras que es muy simple separar la aplicacion en capas logicas las cuales encapsulen  sus funciones internas y la forma de insertar datos a dos distintos gestores de base de datos.

Descargar

viernes, 7 de diciembre de 2012

Acceso a Base de Datos(Oracle y Mysql) en C#

Despues de un largo tiempo de no subir algun aporte hoy traigo este tema a modo de tutorial y saldar dudas que yo tenia y que les puede servir a mas de alguno.

Cuando decimos Acceso a datos es cuando cierta aplicacion en nuestro caso C# necesita poder compartir informacion con algun banco de datos para poder hacer esto pues se elije un gestor de base de datos la mayoria de casos siempre combinan c# y SqlServer por ser del mismo propietario es bastante facil la conexion y la implementacion.

En este tutorial haremos de lado ese gestor y nos iremos por Oracle la version express y Mysql por ser uno de los mas usados.

La teoria la tendran que leer antes aca nos bastara con saber que usaremos un objeto conexion para los dos casos que es el que nos ayuda con toda transaccion que deseemos realizar.

Usaremos el IDE SharpDeveloped no porque sea gratis ,ya que sabemos que Visual Studio tiene un version exprees sino porque yo siento que es mucho mas rapido.

La primera conexion sera  a una base de datos Oracle usaremos el motor que instalamos en tutoriales anteriores link.

Bien creamos un nuevo proyecto de consola y añadimos una referencia al proyecto.

Luego buscamos el driver para Oracle.
Bien ahora crearemos una carpeta dentro del paquete el cual se llamara baseDatos dentro de estas carpetas crearemos una clase que se llama ConexionOracle nos fijamos que haya asignado el namespace acorde a la carpeta.


Bien luego copiaremos ese codigo en el cual se detalla como conectar mediante el objeto  OracleConnection que nos proporcionara una conexion abierta para poder ejecutar transacciones.Bien el protocolo es por donde conectaremos en nuestro caso tcp,el host como es local por defecto es localhost cuando tengan la ip de un servidor externo la ponen ahi,el puerto por defecto es 1521,el siguiente sera dedicated , el nombre del servicio puede ser XE o Orcl en algunos caso depende de la configuracion, el user id tiene que ser el usuario del esquema y la contraseña de dicho esquema.

Luego hacemos un metodo el cual retornara un tipo de  OracleConnection el cual solo basta con instanciarlo y en su contructor mandarle la cadena de conexion que nos la retorna el metodo cadenaConexion(),el cual arma la cadena de conexion para oracle cabe recalcar que hay muchas maneras distintas para realizar esa cadena dependiendo de la necesidad por el momento yo conecto con esta y va bien.Luego de instanciar el objeto abrimos conexion si aca sucede un error se mostrara la exception.

 En nuestra clase Main solo instanciamos el objeto y llamamos al metodo.

Luego ejecutamos el programa y veremos esta pantalla si todo esta correcto.

Bien hasta el momento si has llegado hasta aca felicidades ya realizaste una conexion a oracle.

Para realizar la conexion a mysql es diferente tendremos que bajar el driver de mysql para .net descargar
lo instalamos es puro next y next y tendremos que agregarlo a las referencias de nuestro proyecto.
Luego en la misma carpeta donde esta la conexion a Oracle creamos una clase que se llame  ConexionMysql y tendra el siguiente codigo.
El nuestro caso el servidor sera 127.0.0.1 que es igual a localhost luego el nombre de la base de datos el usuario que por defecto es root y la contraseña es vacia.

Luego hacemos uso de una propiedad que se llama ConnectionString al cual tenemos que igualarlo a la cadena de conexion valida.y luego abrimos la conexion todo esto dentro del try para capturar cualquier error  y mostrarlo en dado caso haya ocurrido.

En la clase principal va este codigo que no es mas que una instancia de la clase conexion a mysql y llamada al metodo getConexion() el cual retornara el objeto conexion abierto.
y si todo ha salido correctamente ejecutamos el proyecto y veremos esta pantalla.

Eso ha sido todo por hoy espero postear ejemplo de como hacer un mantenimiento(insertar,modificar eliminar mostrar) o mejor conocido como CRUD desde c# y Oracle.

descargar

jueves, 25 de octubre de 2012

Pilas Y Colas en JAVA

Bueno despues de un buen rato de no postear les traigo esta investigacion que hice sobre estas estructuras de datos las cuales traen muchas dudas , Pila LIFO (Last-Input, First-Output: el último en entrar es el primero en salir) Stack en java,Cola FIFO(First-In, First-Out: el primero en entrar es el primero en salir) Queue en java.

En las colas existen muchas variantes como la cola circular las colas dobles con entrada y salida restringida(Deque).

Los dos archivos contienen un documento de word que explica de manera sencilla la teoria de cada Estructura y luego una clase creada para emular el comportamiento de dicha estructura y luego se implementa la Clase proporcionada por JAVA.Mas los archivos de proyecto de Eclipse.

Descargar Estructura de Datos Pila(Stack)

Descargar Estructura de Datos Cola,Cola Circular;Cola Doble (Quee).

Comenten no sean bayuncos.

martes, 31 de julio de 2012

Primer Programa En C#

Bueno hoy mostrare como configurar la variable de entorno y compilar un .cs sencillo desde la consola del CMD,algo muy basico pero que no sabia como se hacia con este lenguaje.

Antes que todo mencionar que para poder hacer uso del compilador de C# tenemos que descargar el Net Framework.

Pero que es el Net Framework sin tanto rodeo es el marco de desarrollo que ofrece microsoft para desarrollar aplicaciones mas rapidamente y de forma robusta y segura.

Microsoft desea que todas las aplicaciones creadas para la plataforma Windows, sean basadas en el .NET Framework. Su objetivo es crear un marco de desarrollo de software sencillo, reduciendo las vulnerabilidades y aumentando la seguridad de los programas desarrollados.

De donde lo descargamos de su pagina oficial la version mas reciente ya que a diario hay actualizaciones.
Luego que se ha instalado nos vamos a la direccion que nos muestra la imagen.
Aca estamos ubicados dentro del framework version 4 la mas reciente aca encontraremos un archivo que se llama CSC.exe el cual es el compilador para C#.

El siguiente paso es configurar nuestra variable de entorno la cual tendremos que agregarla al path del sistema para poder usar el compilador.
Nos vamos va equipo click derecho y propiedades y nos saldra la siguiente pantalla.
Luego a configuracion avanzada del sistema y saldra la pantalla donde presionaremos variables de entorno.
Aca en el panel inferior buscamos la opcion que diga path la seleccionamos y con mucho cuidado presionamos editar.
Luego copiamos la direccion donde esta alojado el compilador de C#.
Y lo pegamos al final de la caja de texto que corresponde a valor de variable  antes de pegarlo insertamos un ; para separar variables de entorno.OJO con este paso.
Cuando ya lo agregamos presionamos aceptar y aceptar y no es necesario reiniciar la maquina.

Hasta este punto ya configuramos la variable de forma manual ya podemos usar el compilador.Luego creamos una carpeta y un archivo en blog de notas el cual tenga extencion .cs
Este ultimo sera nuestro primer programa.
El codigo es muy sencillo vemos que hay una intruccion rara que dice using al principio,para serle sincero no sabia que era,la utilizamos exclusivamente para importar espacios de nombres (namespaces:se utiliza para declarar un ámbito. Este ámbito permite organizar el código y proporciona una forma de crear tipos globalmente únicos.),es como el import de java,pero se utiliza para otras finalidades tambien.

Tambien algo que me llamo la atencion es que la clase main no es obligatorio que se llame igual al archivo fuente.Algo que en java es Ley.

static void Main es el metodo de inicio de clase muy parecido a java por cierto.Y Console.WriteLine sirve para mostrar una salida en pantalla con salto de linea la write no salta de linea.Y Console.Read() sirve para detener la ejecucion del programa y esperar a presionar enter.

Despues de una explicacion basica tenemos que compilarlo abrimos el CMD y hacemos un cd a la direccion donde tenemos nuestro codigo fuente.
Presionamos enter y luego de eso digitamos csc + el nombre del archivo.cs y presionamos enter si todo va Uva no nos mostrara ningun error y saldra la siguiente pantalla que la compilacion fue todo un exito.

Y para ver la salida de nuestro programa lo podemos ejecutar desde la consola,pero tambien nos podemos ir a la carpeta donde esta nuestro codigo fuente y ahora tendremos un exe lo ejecutamos y sera nuestra salida.

Bueno ha sido todo por hoy espero que me halla dado a entender es un ejemplo sencillo pero muy importante para comenzar.

Comenten no sean bayuncos.

lunes, 30 de julio de 2012

Estructuras de Datos Osvaldo Cairo y Silvia Guardati

Bien hoy les traigo un libro que a mas de alguno hara feliz y le ayudara en sus estudios y es la comprension de estructuras de datos,el libro explica claramente a nivel de algoritmo como estan compuestas las estructuras de datos analizando profundamente los datos compuestos o multiples o como les llamen.

El libro explica muy bien las estructuras mas conocidas y usadas en algunos lenguajes como arreglos pilas y colas recursion busqueda arboles binarios y muchas cosas que siempre es bueno analizar y entender como funciona.El la tercera edicion y esta en español.

Descargar

comenten no sean bayuncos.

sábado, 28 de julio de 2012

Manual de C#

Bueno señores como todo buenos Informaticos nos gusta investigar acerca de otras tecnologias existentes y esta vez le toca el turno a C#.

Este lenguaje se asemeja demasiado a Java,asi que no nos costara aprendernos la sintaxis el manual es bastante extenso y cubre el area de consola y algunos conceptos fundametales a tomar en cuenta si piensas en programar en este lenguaje.muy buen libro mas adelante pondre algunos post sobre ejemplos sencillos de este lenguajes.

Descargar

comenten no sean bayuncos.

jueves, 26 de julio de 2012

Libros de UML

Hace bastante tiempo publique una entrada sobre UML basico,hoy les traigo unos libros con los cuales podemos aprender y reforzar los conocimientos de UML.

El primer libro es UML en 24 Horas es el mas corto y practico que pude encontrar y que a mi me ha ayudado mucho en el Analisis Orientado a Objetos.El libro es sumamente corto y muy bien explicado lo divide en horas el autor ya que termina en 24 horas,pero podemos tomarnos nuestro tiempo.

El segundo libro es la documentacion oficial de UML esta escrita por su creadores este es mas extenso ya que lo explica de forma mas detallada.

Espero que les sirva y les den buen uso nada cuesta leer y aprender por uno mismo.

descargar

comenten no sean bayuncos.

lunes, 9 de julio de 2012

Introduccion a Oracle Database

Bueno despues de un buen rato de no postear nada,vengo a compartir un poco de lo que he aprendido estos ultimos tiempos,como ven la mayoria de los ejemplos que hay en el blog estan conectados a mysql o postgresql en algunos casos,tambien hemos pasado por SQL Server de microsoft pero nunca habiamos hablado del mejor gestor de base de datos que existe.Si se llama Oracle Database.

Primero veamos unos conceptos que deben de quedar claros:

Diferencia entre SGBD y SQL
SQL es el lenguaje estructurado de consultas el cual se usa en base de datos relacionales.
El lenguaje se divide en 3 subLenguajes.

Lenguaje de definicion de datos(DDL) que permite crear y alterar las estructuras en las que la informacion se almacena.

Lenguaje de manipulacion de datos(DML) que permite insertar,modificar,consultar y eliminar contenidos de la base de datos.

Lenguaje de control de datos(DCL) que gestiona el acceso a los datos desde el punto de vista de la seguridad(usuarios),como desde el punto de vista de la integridad(concurrencia)

SGBD(DBMS en ingles) sistema gestor de base de datos, es una plataforma de software que almacena los datos que se introduzcan,debiendo garantizar principalmente su disponibilidad,su seguridad y su integridad.

Esto significa que es un conjunto de programas que permiten almacenamiento de informacion velando que se pueda disponer de ella en cualquier mommento.

SGDB es el guardian de los datos de la empresa.

Gestores de base de datos que he usado:
Microsoft SQL Server - Version comercial y express
MYSQL -  Version comercial y libre
PostgreSQL libre
Oracle - Version comercial y express

En lo personal si quiero que sea libre yo prefiero PostgreSQL es muy potente,ya si es una version comercial no dudaria en recomendar Oracle.

Antes de instalar oracle cabe recalcar que existe una version express la cual es reducida pero para fines educativos es mas que suficiente,para fines de produccion se optaria por la suite que comercializa oracle.

Luego de esta Introduccion nos ponemos manos a la obra Primero hay que crearse una cuenta en la pagina de oracle.Para poder descargar los productos de oracle.

Luego de crear la cuenta buscamos la opcion que vemos en la imagen.
Que nos llevara a esta otra donde tenemos que aceptar los terminos y condiciones para poderlo descargar.
Son aproximadamente 300 megas a descargar lo cual es la version express de Oracle Database.Luego de descargarla buscamos donde la guardamos y hacemos lo que vemos en la imagen.
Y nos pedira que extraigamos los archivo que contiene el zip.
Luego de esto nos pedira una direccion donde se extraeran los instaladores.

Cuando ya los hayamos descomprimido nos vamos a la carpeta donde los extraimos y ejecutamos el exe que esta en la direccion que vemos a continuacion.
Y ejecutamos como administrador para que tengamos todos los privilegios.
Nos saldra la pantalla de bienvenida del instalador y presionamos next.
Aceptamos los terminos y condiciones de la version express y presionamos next.
Especificamos donde se instalara por defecto muestra esa direccion y presionamos next.
Esta parte es muy importante ya que le asignaremos las contraseñas al usuario SYS, SYSTEM,los cuales son  como los root de linux sin esas contraseñas no se puede hacer nada asi que guardalas bien.Luego de eso presionamos next.

Verificamos que no de ningun error en la instalacion y por ultimo nos saldra la pantalla de terminado correctamente.
Y listo ya tenemos instalado la base de datos de Oracle basta con presionar finish y realizar lo que vemos en la siguiente imagen.
Buscamos el directorio donde se instalo y ejecutamos la opcion que dice GetStarted y se nos abrira una ventana en el navegador la cual si se muestra la siguiente imagen todo se instalo correctamente.
Luego presionamos en storage y nos saldra esta pantalla.
En la cual tendremos que logearnos con usuario SYSTEM y la contraseña que asignamos en la instalacion.Para poder acceder a todas las funciones del gestor.

Ya hecho esto tendremos que crear un esquema para nuestra base de datos oracle se maneja de esa manera,Un esquema es una colección de objetos de base de datos. Un esquema es propiedad de un usuario de base de datos, y comparten el mismo nombre. Los objetos dentro de los esquemas incluyen estructuras tales como tablas, vistas, e índices.Presionamos la opcion que dice aplication express para crear un esquema nuevo de trabajo.

Luego presionamos create workspace y listo ya hemos creado nuestro primer esquema de oracle.
Ya hecho esto nos saldra la pagina donde tendremos que logearnos para manipular este esquema y crear nuestras tablas.
Aca ponemos la informacion del esquema creado anteriormente.la siguiente pantalla es la interfaz principal.
Esta es nuestra interfaz para manipular todas las opciones de nuestro esquema para crear una tabla en el esquema seguimos el orden siguiente.
Y se nos mostrara el panel para insertar nuestro codigo sql.
Vemos que el autocommit esta activado asi que cuidado con lo que hacen luego de armar nuestro codigo que creara una tabla sencilla presionamos run.Y nos mostrara el mensaje que se crearon las tablas correctamente luego nos vamos a la opcion que esta en la imagen.

Y nos mostrara las tablas que existen en ese esquema algunas son de prueba del propio oracle,bien esta parte es el panel visual para crear nuestras tablas y muchas cosas mas tambien para agregarle propiedades a las tablas existentes.

Bien hasta aca ya mas o menos sabemos como funciona la interfaz para la manipulacion de nuestra base de datos cuando hayamos cerrado nuestro navegador y no necesitemos el servidor de base de datos lo podemos bajar con las mismas opciones para empezar a usarlo tambien hay una herramienta que se llama sqlPlus.

Para volverlo a usar buscamos la opcion de Start Database para que vuelva a subir los servicios y presionamos GetStarted para que nos muestre la pantalla de inicio en el navegador.
Luego presionamos donde esta el recuadro negro y nos pedira el usuario root que en oracle es SYSTEM y la contraseña que le asignamos en la instalacion.verificada las credenciales nos mostrara la siguiente pantalla.

Como ya tenemos un esquema creado presionamos la opcion del recuadro para que nos mande al login del esquema,si queremos crear otro esquema seguimos los pasos anteriores solo que esta vez puedes seleccionar un usuario existente no es recomendable que sean los SYSTEM  o SYS.

Y si has llegado hasta aca felicidades ya puedes instalar y usar basicamente oracle Database ahora toca profundizar en este excelente gestor.

Mas adelante veremos un repaso de SQL basico en oracle y su conexion con java tanto con Hibernate desde netbeans,con JDBC puro,con Spring Framework usando JDBC template,y finalizando con un poco de ADF en JDeveloped,.Si ven hay mucho que compartir.

Comenten no sean bayuncos.