Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - cyberserver

#11
Java / Re: Conectar java con oracle 10g ex
7 Febrero 2011, 08:19 AM
Que Onda mira. aqui te paso una clase que cree usando patrones "Dao" te va a ayudar un buen. :)


Es muy sencilla por lo mismo que apenas la hice ayer. pero con eso te bastara.

Clase : ClaseBDOracle.java
Código (java) [Seleccionar]

import java.sql.*;

/**
*
* @version 1.0.0 , ClaseBDOracle
* @author Abel de la Fuente Arriaga crow_15@hotmail.com
*
* Requerimiento para poder hacer uso de esta Clase
* 1-. Librerias ojdbc(Version).jar en el Classpath de Java
*
*/
public final class  ClaseBDOracle {
    private Connection conexión;
    private static String Equipox;
    private static String Usuariox;
    private static String Passwordx;

    private  Statement stmt;

    /**
     * Constructor ClaseBDOracle
     * Carla el Api para la conexión
     */
    public ClaseBDOracle(){
        try{
            Class.forName("oracle.jdbc.driver.OracleDriver");

        }catch (Exception e){
            System.out.println("Error en ClaseBDOracle Constructor " + e);
        }
    }

    /**
     * Constructor ClaseBDOracle
     * @param Equipo Tipo String - Equipo donde se realizara la conexión
     * @param Usuario Tipo String - Nombre de Usuario en la BD
     * @param Password Tipo String - Password en la BD
     *
     */
    public ClaseBDOracle(String Equipo,String Usuario,String Password) throws SQLException{
        Equipox=Equipo;
        Usuariox=Usuario;
        Passwordx=Password;
        try{
            Class.forName("oracle.jdbc.driver.OracleDriver");
           
        }catch (Exception e){
            System.out.println("Error en ClaseBDOracle Constructor " + e);
        }
    }

    /**
     * Realiza la conexión a la BD
     * @return True - conexión Correcta
     * @return False - conexión Incorrecta
     *
     */
    public Boolean Conectar(){
        try{
             conexión= DriverManager.getConnection("jdbc:oracle:thin:@"+Equipox,Usuariox,Passwordx);
             stmt = conexión.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
            return true;
        }catch(Exception e){
             System.out.println("Error en ClaseBDOracle Metodo Conectar  \n"+ e);
            return false;
        }
         
    }

    /**
     * Realiza la conexión a la BD
     * @param Equipo Tipo String - Equipo donde se realizara la conexión
     * @param Usuario Tipo String - Nombre de Usuario en la BD
     * @param Password Tipo String - Password en la BD
     * @return True - conexión Correcta
     * @return False - conexión Incorrecta
     *
     */
    public Boolean Conectar(String Equipo,String Usuario,String Password){
        try{
            Equipox=Equipo;
            Usuariox=Usuario;
            Passwordx=Password;
           
            conexión= DriverManager.getConnection("jdbc:oracle:thin:@"+Equipox,Usuariox,Passwordx);
            stmt = conexión.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
            return true;
        }catch(Exception e){
             System.out.println("Error en ClaseBDOracle Metodo Conectar  \n"+ e);
            return false;
        }

    }

    /**
     * Verificacion del estado de conexión
     * @return True - conexión Abierta
     * @return False - conexión Cerrada
     *
     */
    public boolean GetEstadoDeConeccion(){
        try{
            Boolean BoEstado=conexión.isClosed();
            if(!BoEstado){
               return true;
            }else{
               return false;
            }
        }catch(Exception e){
            System.out.println("Error en ClaseBDOracle Metodo GetEstadoDeConeccion  \n"+ e);
            return false;
        }
       
    }

    /**
     * Realizar una Consulta a la BD
     * @param Query Tipo String - Query de Consulta
     * @return ResulSet - Objeto General de los Datos de la Consulta
     * @return null - Error de Consulta
     *
     */
    public ResultSet GetConsulta(String Query){
        try{
            ResultSet rset = this.stmt.executeQuery(Query);
            return rset;
        }catch(Exception e){
            System.out.println("Error en ClaseBDOracle Metodo GetConsulta  \n"+ e);
            return null;
        }
    }

    /**
     * Ejecucion de un Query que no regresa valores
     * @param Query Tipo String - Query a Ejecutar
     * @return True - Ejecucion Correcta del Query
     * @return False - Ejecucion Incorrecta del Query
     *
     */
    public Boolean EjecutarQuery(String Query){
        try{
            Boolean BoValRet;
            stmt = conexión.createStatement();
            BoValRet=stmt.execute(Query);
            if(BoValRet){
                return true;
            }else{
                return false;
            }
        }catch(Exception e){
            System.out.println("Error en ClaseBDOracle Metodo EjecutarQuery  \n"+ e);
            return false;
        }
    }

    /**
     * Desconeccion a la BD
     *
     */
    public void Desconectar() throws SQLException{
        conexión.close();
    }

    /**
     * Retorno de Objeto conexión
     * @return Conecction - Objeto Conecction
     *
     */
    public Connection GetObjConecction(){
        return conexión;
    }

}





Igual y puede tener alguna Excepcion. pero postealo y con gusto lo corrijo.

Por cierto si tienes Oracle 10g instalado en tu maquina, de aii puedes conseguir la api
"ojdbc" viene dentro de una carpeta llamada jdbc
CitarC:\oraclexe\app\oracle\product\10.2.0\server\jdbc\lib


Suerte y espero que te sirva
#12
Miren. aqui les traigo Otro ejemplo mucho mas elaborado acerca del problema que veo con Spring y Xml (Yo se que el problema esta en mi es por eso que recurro al foro)



Aqui todas mi Clases Dependen de Spring.

Y si supongamos que utilizo la inyeccion de dependencias enviado las dependencias al constructor de las Clases, ¿ al iniciar mi aplicacion  tengo que inyectar Toditititas las Clases que contenga mi proyecto?

O si no es asi como puedo organizar mi proyecto para que se vallan inyectando las dependencias como las vaya necesitando.. ?
#13
Hola buenas noches.!!!

Quisiera ver si me pueden ayudar a resolver una duda.!


Ejemplo del Problema :
Tengo 3 clases A,B,C,D

A utiliza un metodo de B, y B utiliza una metodo de D al igual que C
Citar
A->B
B->D
C->D

Ahora bien recurri a la inyeccion de dependencias para disminuir el acomplamiento entre las Clases (Tambien use interfaces pero por ahora no lo ejemplifique para facilitar el asunto) y para evitar la Redundancia al momento de instancia clases. esto lo hago con Spring Framework y Context Xml.

mi codigo en la clase A para crear la instancia es:
Código (java) [Seleccionar]

FileSystemXmlApplicationContext FSXObj = new FileSystemXmlApplicationContext("Archivo.xml");
A ObjA = (A)FSXObj.getBean("ClaseB");


mi Archivo.xml es el siguente:
Código (xml) [Seleccionar]

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN"
   "http://www.springframework.org/dtd/spring-beans-2.0.dtd">

<beans>
<bean id="ClaseB" class="B"></bean>
</beans>


de igual manera esto se hace en la Clase B y C.

Esto como ven no tiene nada del otro mundo, pero mi pregunta es.

Pero si estoy dependiento de FileSystemXmlApplicationContext de Spring entonces donde queda la inyeccion?.

He pensado en crear una Clase X donde primero cargue todas las Dependencias del Xml y despues las valla inyectando a las demas Clases ya sea por el Constructo o por Setter.
pero que sentido tendria esto..... ya que todas mis Clases serian dependientes de la clase X? mejor utilizo el Container y me dejo de tonterias.

Y despues tendria que configurar las Clases para resivir la inyeccion de la dependencia... Yo me pregunto

Carajo... no estas pensando mas en tratar de facilitar las cosas que en lo que hace tu proyecto...!!! no por mejorar y preveer el futuro para el mantenieminto de las Clases estas haciendo mas codigo y a la larga va a ser mas dificil darle mantenimiento?



Alguien de Ustedes tendra un ejemplo sencillo o diagrama de clases Uml de Inyeccion de Dependencias con xml? ? ?

Muchas Gracias por su atencion.

Nota: Si vas a comentar solo para criticar el nombre de mis clases o cosas "Estupidas" mejor reservate tus comentarios. Gracias!
Estupida no es Groceria he
Citar
estúpido, -da
adj.-s. Notablemente torpe para comprender las cosas.
adj. Díc. del dicho o hecho propios de un estúpido.
#14
Hola buenas.
Quisiera saber cuales son los diagramas UML mas usados o recomendados para el desarrollo de software. segun con su experiencia cuales son lo que dan en el manual Tecnico. ? ?

Tanto en la programacion (Yo utilizo Programacion Orientada Objetos Java)
Como en el Diseño de BD.


Por su atencion Gracias :)
#15
Ola amigos, alguien de ustedes me podria ayudar, estoy buscando
Citar

Alguna herramienta que cree el Xml, deacuerdo al XSD o Viceversa ? o bien una herramienta visual que permita crear  el Xml y el XSD sin que tenga que poner Xml puro


De antemanos gracias :)
#16
Aqui esta, la nueva clase un poco mas "pulida" y funcional

Código (csharp) [Seleccionar]

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using Oracle.DataAccess.Client;

namespace ModuloVentas
{
   class BasDatODP
   {
       private OracleConnection conexión;
       private static String Equipox;
       private static String Usuariox;
       private static String Passwordx;
       /*
        *Constructores BasDatODP
        * EXISTE SOBRECARGA DE CONSTRUCTORES
        *
        * 1.- CONSTRUCTOR BASDARODP() -> Permite la multiple instancia de la clase sin repetir
        *                                la entrada de parametros de conexión
        * 2.- CONSTRUCTOR BasDatODP(String Equipox,String Usuariox,String Passwordx) ->
        *                              Entrada de los parametros de conexión
        */

       /*
        *Constructor BasDatODP
        * @param VACIO - los parametros son vacios,para evitar la Redundancia si es que se decea
        * Reinstancias la clase BasDatODP
        */
       public BasDatODP()
       {
           conexión = new OracleConnection();
       }

       /*
        *Constructor BasDatODP(String Equipox,String Usuariox,String Passwordx)
        *@param Equipo  String - Nombre del Equipo Host para la conexión
        *@param Usuario String - Usuario para la conexión
        *@param Passwor String - Password para la conexión
        *
        */
       public BasDatODP(String Equipo, String Usuario, String Password)
       {
           Equipox = Equipo;
           Usuariox = Usuario;
           Passwordx = Password;

           conexión = new OracleConnection();
           conexión.ConnectionString = "Data Source=" + Equipox
                                           + ";User Id=" + Usuariox
                                           + ";Password=" + Passwordx
                                           + ";";
       }

       /*
        *Metodo Conectar
        * EXISTE SOBRECARGA DE METODOS
        *
        * 1.- Metodo Conectar() -> Permite realizar la conexión, si se cargaron los parametros
        *                       anteriormente en el constructor
        *
        * 2.- Metodo Conectar(String Equipo, String Usuario, String Password) ->
        *            Permite realizar la conexión, si se omitio la Carga de parametros en el constructor
        */

       /*
        *Metodo Conectar()
        *REALIZA LA conexión CON LA BASE DE DATOS
        *@return true - La conexión se Realizo Correctamente
        *@return false - Error en la conexión
        */
       public Boolean Conectar()
       {
           try
           {
               conexión.ConnectionString = "Data Source=" + Equipox
                                           + ";User Id=" + Usuariox
                                           + ";Password=" + Passwordx
                                           + ";";
               conexión.Open();
               return true;
           }
           catch (Exception error)
           {
               return false;
           }
       }


       /*
        *Metodo Conectar(String Equipox, String Usuariox, String Passwordx)
        *REALIZA LA conexión CON LA BASE DE DATOS
        *@param Equipo  String - Nombre del Equipo Host para la conexión
        *@param Usuario String - Usuario para la conexión
        *@param Password String - Password para la conexión
        *@return true - La conexión se Realizo Correctamente
        *@return false - Error en la conexión
        */
       public Boolean Conectar(String Equipo, String Usuario, String Password)
       {
           try
           {
               Equipox = Equipo;
               Usuariox = Usuario;
               Passwordx = Password;

               conexión = new OracleConnection();
               conexión.ConnectionString = "Data Source=" + Equipox
                                               + ";User Id=" + Usuariox
                                               + ";Password=" + Passwordx
                                               + ";";
               conexión.Open();
               return true;
           }
           catch (Exception error)
           {
               return false;
           }
       }

       /*
        *Metodo ExportarConeccion()
        *IMPORTANTE SI SE DECEA IMPLEMENTAR EN ALGUNA OTRA TAREA EL OBJETO ORACLEDATAPROVIDER
        *@return OracleConnection - Objeto OracleConeccion importante si se quiere implementar en alguna otra
        *                        tarea de OracleDataProvide
        */
       public OracleConnection ExportarConeccion()
       {
           return conexión;
       }

       /*
        *Metodo EstadoDeConeccion()
        *MUESTRA EL ESTADO EN QUE SE ENCUENTRA LA conexión DE LA BASE DE DATOS
        *@return true - Estado conectado
        *@return false - Estado Desconectado
        */
       public Boolean EstadoDeConeccion()
       {
           try
           {
               String Estado = conexión.State.ToString();
               if (Estado.Equals("Open"))
               {
                   return true;
               }
               else
               {
                   return false;
               }

           }
           catch (Exception error)
           {
               return false;
           }


       }

       /*
        *Metodo Desconectar()
        *DESCONECTA DE LA BASE DE DATOS
        *@return true - Se Desconecto Correctamente
        *@return false - No se Desconecto o Existe un Error
        */
       public Boolean Desconectar()
       {
           try
           {
               conexión.Close();
               conexión.Dispose();
               return true;
           }
           catch (Exception error)
           {
               return false;
           }
       }

       /*
        *Metodo Consulta(String Query)
        *CONSULTA DONDE SE RETORNE UN VALOR (SELECT,FUNCIONES.ETC)
        *@return OracleDataReader - Datos de Lectura de la Consulta
        */
       public OracleDataReader Consulta(String Query)
       {
           try
           {
               OracleCommand HacerConsulta = new OracleCommand();
               HacerConsulta.Connection = conexión;
               HacerConsulta.CommandText = Query;
               HacerConsulta.CommandType = CommandType.Text;

               OracleDataReader DatosLectura = HacerConsulta.ExecuteReader();
               if (!DatosLectura.Read())
               {
                   return null;
               }
               return DatosLectura;
           }
           catch (Exception Error)
           {
               return null;
           }
       }

       /*
        *Metodo EjecutarQuery(String Query)
        *LINEA QUERY DONDE NO SE RETORN UN VALOR (INSERT,DELETE,UPDATE)
        *@return True  - El Query se ejecuto Correctamente
        *@return False - El Query no se ejecuto
        */
       public Boolean EjecutarQuery(String Query)
       {
           try
           {
               OracleCommand HacerConsulta = new OracleCommand();
               HacerConsulta.Connection = conexión;
               HacerConsulta.CommandText = Query;
               HacerConsulta.CommandType = CommandType.Text;
               HacerConsulta.ExecuteNonQuery();
               return true;
           }
           catch (Exception error)
           {
               return false;
           }
       }

       /*
        *Metodo ConsultarEnDataGrid(String Query)
        *CARGA UNA CONSULTA QUE RETORNE UN VALOR (SELECT,FUNCION,ETC) A UNA DATAGRID
        *@return DataTable  - Datos de Tabla,
        *          Para ser igualados con dataGridView.DataSource
        *
        */
       public DataTable ConsultarEnDataGrid(String Query)
       {
           try
           {
               OracleDataAdapter DaValores = new OracleDataAdapter(Query, conexión);
               DataSet DsValores = new DataSet();
               DaValores.Fill(DsValores, "Tabla");

               return DsValores.Tables["Tabla"];

           }
           catch (Exception error)
           {
               return null;
           }

       }
       public String GetEquipo()
       {
           return Equipox;
       }
       public String GetUsuario()
       {
           return Usuariox;
       }
       public String GetPassword()
       {
           return Passwordx;
       }
   }
}

#17
Lo checare.! :) Gracias :)

Se ve que esta bueno lo de Patrón Dao.

Nota: El ejemplo es puramente imaginario, Mi sistema es un compilador.! pero estoy buscando una buena arquitectura para estandarizar los proyectos de Desarrollo, pero quiero hacer las cosas bien. programar es un arte y como arte esta sujeta diciplinas. :)

#18
Hola. quisiera su ayuda y sus recomendaciones.

Quiero buscar la arquitectura que mas me puede convenir en el desarrollo de un sistema. y/o si la que estoy utilizando es un buena Diseño de arquitectura (Por lo que veo no existe)

Tengo los siguentes elementos

Citar
(1)PaqueteFormularios
->Formulario1
(2)PaqueteClasesRelacion
->ClaseRelacionFormulario1ResolverEcuaciones
(3)PaqueteClases
->ClaseResolverEcuaciones

1.- PaqueteFormularios : Capa de Diseño, contiene todos los componentes visuales de la aplicacion (Interface)
2.- PaqueteClasesRelacion : Resive los parametros de Capa 1, y es la que relaciona con la Capa 3
3.- Capa 3 : Contiene Todas las Clases Generales (Reutilizables), que pueden estar ya compiladas o no. es aqui la verdadera logica de la aplicacion.


Por su Ayuda muchas Gracias.!

Trate de implementar la arquitecura de 3 capas. pero por lo que veo es exclusiva para uso con Base De Datos.... :(

#19
Java / Re: Ejemplo de 3 capas con java
14 Enero 2011, 03:56 AM
Disculpen, una pregunta mas.
La arquitectura de 3 capas solo es para aplicaciones que implementan una Base de Datos.?

Y si tengo una aplicacion, que no ocupa Bd, que hago ? se puede usar esta arquitectura o no ?
#20
Java / Re: Ejemplo de 3 capas con java
13 Enero 2011, 05:42 AM
Hola Sapito. muy bueno tu tema, principalmente en la primera parte.
Pero tengo una duda acerca de la programacion en 3 capas.
En general poniento depormedio tu codigo.

Las Arquitectura de 3 capas se divide en :

1.- Interface, la Parte visual de nuestra aplicacion
2.- Clases de mi logica. que analizan los parametros enviador por la interface.
3.- Las Clases Ajenas a nuestra logica. (Apis, clases Generales para reutilizar,Clases ya compiladas)

Es cierto esto? o la 3 capa solo es ocupada para acceso a una BD

Y digo analizando este modelo poniendo depormedio tu codigo, por lo siguiente
Tu primera practica la estructuraste masomenos asi.

1.- Interface
2.- Tu logica que relaciona a la 1° y 3° capa
3.- Clases para la conexión de BD.

Y en la 3° capa tambien pusiste la clase "DBdaoProducto" que es donde especificas lo que se tiene que modificar en la BD.




Pero si supongamos que yo en la parte 3 coloco una Clase (Ya compilada que alguien me paso alguna ves) llamada PatronDeConeccion, que permite la conexión y modificacion de la BD por el envio de Query´s a los metodos muy generales especificados dentro.

Cuando yo quiera enviarle los parametros Query a algun metodo dentro de la Clase PatronDeConeccionesta, esta ultima clase donde iria? en el nivel de mi logica por que yo defino mis consultas o junto a la Clase PatronDeConeccion por el solo hecho de que tiene contacto directo con la BD