Autor Tema: Un Proyecto Especifico de Distribución Libre  (Leído 12627 veces)

0 Usuarios y 7 Visitantes están viendo este tema.

sicario

  • Visitante
Un Proyecto Especifico de Distribución Libre
« : junio 12, 2006, 04:09:06 pm »
Bueno Aqui vengo yo con cara de looser a pedirle al amigo UdProject o algo asi... a que me ayude en crear un Proyecto de Distribucion libre en donde pueda yo aprender de forma sencilla, gratuita y amplia la creacion de Aplicaciones en JAVA para escritorio.

Que necesito...: Pues bien, necesito un manual bien documentado que no este en ESPAÑOLETE, que tenga ejemplos comprobables en JAVA.. Y si no es mucho pedir ... agregar un pequeño ejemplo de una aplicacion en JAVA que se conecte a una base de datos mySQL y que genere un reporte simple de Ventas por ejemplo mensuales agrupados sus totales por cada mes.

En espera que nuestro amigo me ayude..

Att.

SICARIO

uDocProject

  • Visitante
Un Proyecto Especifico de Distribución Libre (Preliminar)
« Respuesta #1 : junio 12, 2006, 04:38:49 pm »
Este es el tutorial oficial de Sun Java:

---------------
http://redir.no-ip.org/tmp/JavaTutorial


http://redir.no-ip.org/tmp/JavaTutorial.zip

---------------



Ya que por ahora este es un trabajo del que asumo que trabajaré sin ayuda ni soporte de ningún tipo por parte de otros, le asignaré un tiempo de trabajo justo.

Si realmente esperan que este proyecto sea totalmente formal y si tiene alta importancia, les sugiero que nos pongamos de acuerdo para que pueda dedicarle más tiempo e incluso dedicar toda la atención hasta que esté terminado.

En este momento estaré organizando y editando información relacionada con esto.

uDocProject

  • Visitante
Java: Edición, Compilación y Ejecución del Código
« Respuesta #2 : junio 12, 2006, 05:04:06 pm »
Como sabemos, Java es un lenguaje interpretado que es independiente de la plataforma. Para correrlo, se necesita tener el JRE instalado. Para programar y compilar se necesita el SDK.

Para hacer fácil el ciclo completo de desarrollo, se puede utilizar el compilador/decompilador y entorno de desarrollo, DJ Java Decompiler, específicamente para la plataforma Windows:

---------------
http://members.fortunecity.com/neshkov/dj.html

---------------


El SDK (Software Development Kit) y el JRE (Java Runtime Environment) vienen en el mismo paquete, y pueden descargarse directamente del sitio web de Sun:

---------------
http://java.sun.com/javase/downloads/index.html

---------------

sicario

  • Visitante
Re: Un Proyecto Especifico de Distribución Libre
« Respuesta #3 : junio 12, 2006, 05:25:06 pm »
Exelente... :thumbsup: vamos bien.. nos podemos ir saltando esa parte porque ya los tengo... los archivos.. incluso ya lei las dos historias importantes del origen de JAVA.

ahora como corro un ejemplo para conectarme a una base de datos y hacer un reporte sencillo como lo que describo alla arriba?

uDocProject

  • Visitante
Usando JDBC con MySQL (tutorial Inglés)
« Respuesta #4 : junio 12, 2006, 05:38:39 pm »
----------------------------
http://www.developer.com/java/data/article.php/3417381

----------------------------

Desconectado realbo

  • -^- Elite Gold -^-
  • The Communiter-
  • **
  • Mensajes: 2720
Re: Un Proyecto Especifico de Distribución Libre
« Respuesta #5 : junio 12, 2006, 05:53:36 pm »
Sicario te aconsejo leer esta guia que puse por ahi

Código: [Seleccionar]
http://www.svcommunity.org/forum/index.php?topic=9935.0
te estas queriendo aventar al agua sin poder nadar vas muy rapido agarrala al suave ke sino te vas a dar en la trompa leete lo basico, crear clases, eventos, metodos, etc. etc. etc.
ya cuando domines algunos conceptos te metes a las BD

sicario

  • Visitante
Re: Un Proyecto Especifico de Distribución Libre
« Respuesta #6 : junio 12, 2006, 05:55:24 pm »
----------------------------
http://www.developer.com/java/data/article.php/3417381

----------------------------


Exelente aunque pense que te ibas a extender como lo haces en tus POST. solo era una corazonada... lastima que esa pagina esta en ingles y como no domino lo del JAVA esta Jocote para mi...

Una preguntita... En los Documentos ya creados en tu organización aun no tienen nada sobre algo parecido a este tema... digo porque asi me ayudabas mas men.

Desconectado mxgxw

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 5665
  • Starlet - 999cc
    • mxgxw
Re: Un Proyecto Especifico de Distribución Libre
« Respuesta #7 : junio 12, 2006, 05:59:49 pm »
Ok mira sicario. Te voy a explicar un poquito como funcionan las conexiones a bases de datos en Java.

Primero, necesitas un driver de base de datos, de manera similar a los drivers que se instalan en güindous para tener acceso via ODBC. En java tenes que descargar los drivers para una interface de acceso a base de datos llamada JDBC.

Para el caso en particular, tu necesitas el driver MySQL Connector/J de la gente de MySQL, el cual puedes obtener desde la siguiente dirección:

Código: [Seleccionar]
http://www.mysql.com/products/connector/j/

Para el caso que nos interesa podes descargar la versión 3.1, que es la considerada "estable".

La diferencia entre la estable y la de desarrollo es obviamente la funcionalidad, sin embargo para el tipo de aplicacion que vas a desarrollar es mejor optar por la estable ya que no queremos perdidas de datos a causa de algun bug que pueda aparecer en una versión beta.

¿Como usar el driver JDBC?

Lo primero es instalar la librería en el sistema. Para instalarla lo único que es necesario es copiarla en algun directorio que sea parte del CLASSPATH de Java.

El CLASSPATH de java, es una variable de entorno del sistema en donde se especifican todos los directorios donde Java buscará las librerías.

Para simplificar las cosas, se puede instalar la librería en:

Código: [Seleccionar]
"C:\Archivos de programa\Java\jdk1.5.0_01\jre\lib"

Debes de notar que en el caso anterior, el JDK esta instalado en:

Código: [Seleccionar]
C:\Archivos de programa\Java\jdk1.5.0_01\jre\

El subdirectorio del Runtime se llama JRE, y el directorio donde se guardan las librerias se llama "lib"


Registrando el Driver

Pues bien ahora es que comienza lo interesante, JDBC no posee una interface "directa" para instalar el driver.

Lo que se hace entonces es indicarle a Java, como se llama el driver para que intente cargarlo de entre las librerías.

Esto se debe hacer antes de llamar a cualquier función que haga uso de la conexión a la base de datos. Si no lo hacemos de esta manera, java nos mostrará un error de "No suitable driver", o en español, que no se encuentra un driver adecuado.

La mejor manera de registrar el driver, es haciendolo ya sea en la función main de nuestro programa, o en el constructor del objeto principal de nuestro software.

En este caso se registrará el driver desde la función main:

Código: [Seleccionar]
// DBTest.java

public class DBTest {
    public static void main(String args[]) {
        try {
             Class.forName("com.mysql.jdbc.Driver").newInstance();
        } catch(Exception ex) {
            // Manejar el error
        }
    }
}

Generando una conexion a la DB

Una vez registrado el driver, podemos hacer uso de la api de java SQL, para generar las consultas correspondientes.

Lo primero que tenemos que hacer es conectarnos a la base de datos, para ello se crea un objeto del tipo Connection, el cual representa una conexion a nuestra base de datos.

La conexion se realiza de la siguiente manera:

Código: [Seleccionar]
        try {
            Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/test?user=monty&password=greatsqldb");

            //  Hacer algo con la conexion

        } catch (SQLException ex) {
            // handle any errors
            System.out.println("SQLException: " + ex.getMessage());
            System.out.println("SQLState: " + ex.getSQLState());
            System.out.println("VendorError: " + ex.getErrorCode());
        }

El objeto DriverManager, contiene una funcion para el establecimiento de conexiones a la base de datos.

El formato de la conexion es el siguiente:

jdbc:mysql://<servidor>/<DB>?user=<usuario>&password=<password>


Realizando consultas

En java, las consultas son guardadas en un objeto llamado ResultSet.

Un recordset muestra una fila de la consulta a la vez, para accesar los datos hacemos uso de la funcion next() para accesar al siguiente resultado.

Los valores almacenados en cada columna pueden ser convertidos a una serie de tipos de datos básicos en Java, haciendo uso de las funciones correspondientes del Resultset.

Para poder obtener un resultset, el primer paso es generar nuestro Query, o nuestra consulta.

Existe un objeto en JDBC que representa a las consultas, este objeto se llama Statement.

Podemos realizar una consulta simple de la siguiente manera (asumo que existe una conexion llamada conn y que ha sido previamente inicializada):

Código: [Seleccionar]
    Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery("SELECT IDProducto,Nombre,Cantidad FROM ventas");

Statement, tiene una funcion llamada "executeQuery" que nos permite eejecutar la consulta SQL.

Los resultados de la consulta seran almacenados en la variable rs, nuestro ResultSet.

Para poder observar los datos devueltos por la consulta podemos utilizar el siguiente codigo:

Código: [Seleccionar]
while(rs.next()) {
    System.out.print("IDProducto: "+rs.getInt("IDProducto")+" ");
    System.out.print("Nombr: "+rs.getString("Nombre")+" "):
    System.out.println("Cantidad: "+rs.getInt("Cantidad"));
}

Nuestro Resultset posee un cursor que representa la fila actual de nuestro resultado.

Por ejemplo si la consulta nos hubiera devuelto los siguientes datos:

Código: [Seleccionar]
(beforeFirst)
Fila 1
Fila 2
Fila 3
(afterLast)

El cursor siempre se ubica, en la posicion "beforeFirst" justo despues de realizar la consulta. Lo que significa que si llamamos a la funcion "next()", el cursor se pocisionara sobre el primer registro.

Si tratamos de leer los valores, antes de posicionarnos en el primer registro nos lanzara una excepcion.

Como dije antes, Una vez nos hemos posicionado en la fila correspondiente, podemos leer los datos de una columna especifica con las funciones "get", que  tienen mas o menos este formato:

get<tipoDato>("<nombreColumna>");

dependiendo del tipo de dato que especifiquemos, el valor almacenado en la columna de la DB sera convertido al valor correspondiente y nos sera devuelto.

La salida para una funcion como la anterior podria ser la siguiente:

Código: [Seleccionar]
56 Churros 15
23 CocaCola 2
45 Jabon 4


Referencias:

Documentacion de MySQL Connector/J
http://grid.tsinghua.edu.cn/docs/mysql-jdbc/

Pueden encontrar una copia de la misma dentro del .zip del driver JDBC de MySQL
« Última Modificación: junio 12, 2006, 06:18:04 pm por mxgxw »


uDocProject

  • Visitante
Re: Un Proyecto Especifico de Distribución Libre
« Respuesta #8 : junio 12, 2006, 06:06:29 pm »
Los documentos que estoy manteniendo tratan de temas como los de los programas que ya he mostrado, así como toda clase de algoritmos independientes tanto de plataforma como de lenguajes de programación. Entre esos se tratan algoritmos de máquina, expresiones regulares, matemáticos, hardware, y reimplementación de los programas en general para obtener un código más limpio.

Documentación específica para temas como bases de datos no se ha extendido formalmente en ese proyecto porque se considera que esa clase de información es muy abundante, a diferencia de, por ejemplo, el funcionamiento interno de un reproductor multimedia, los formatos y la interacción con los dispositivos.

Sin embargo, si condiciones como esta demuestran que se necesita crear documentos adicionales acerca de bases de datos, además de todos los que pueden ser fácilmente encontrados, entonces se hará, y se podría comenzar por usar esa información para crear un software de foros que ocupe menos recursos, por decir algo.

sicario

  • Visitante
Re: Un Proyecto Especifico de Distribución Libre
« Respuesta #9 : junio 12, 2006, 06:08:23 pm »
me llega MX... y vos no tenes algun material didactico entendible sobre  JAVA men?

Desconectado mxgxw

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 5665
  • Starlet - 999cc
    • mxgxw
Re: Un Proyecto Especifico de Distribución Libre
« Respuesta #10 : junio 12, 2006, 06:10:19 pm »
me llega MX... y vos no tenes algun material didactico entendible sobre  JAVA men?

Perame que no lo he terminado... jaja esque tengo la documentacion de MySQL Connector/J en otra PC...

Mira viejo, esque la documentacion de java es buenisima, el clavo es que esta en ingles... Lo que te estoy poniendo esta sacado directamente de la documentacin de MySQL Java Connector


sicario

  • Visitante
Re: Un Proyecto Especifico de Distribución Libre
« Respuesta #11 : junio 12, 2006, 06:14:38 pm »
Cachimbonisimo... MX... esperare que lo pongas... y mira quitame ese paradigma que tengo de que para entender el JAVA hay que Saber C o C++ o C#... digo porque pareciera que son parecidos... No es de esperar alo asi como Visual Fox o Visua Basic.

La verdad necesito un codigo simple... que corra y me ayude a entender lo basico del JAVA.

Desconectado realbo

  • -^- Elite Gold -^-
  • The Communiter-
  • **
  • Mensajes: 2720
Re: Un Proyecto Especifico de Distribución Libre
« Respuesta #12 : junio 12, 2006, 06:18:06 pm »
quitame ese paradigma que tengo de que para entender el JAVA hay que Saber C o C++ o C#...

Dicen que es similar yo la verdad no se nada de C pero si programo en Java

uDocProject

  • Visitante
Re: Un Proyecto Especifico de Distribución Libre
« Respuesta #13 : junio 12, 2006, 06:19:35 pm »
Para Java sí es necesario saber lo básico de C, así como lo básico de la programación orientada a objetos.

De C es suficiente con saber cómo se utiliza if, for, switch. Además de declaración de variables, tipos de datos básicos (int...), sintaxis general de las funciones y los operandos lógicos (&&, ||, !=, ==), aritméticos (++, --, /=, *=, +, -, *, /) y binarios (&, |, <<, >>).

Desconectado mxgxw

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 5665
  • Starlet - 999cc
    • mxgxw
Re: Un Proyecto Especifico de Distribución Libre
« Respuesta #14 : junio 12, 2006, 06:20:14 pm »
Cachimbonisimo... MX... esperare que lo pongas... y mira quitame ese paradigma que tengo de que para entender el JAVA hay que Saber C o C++ o C#... digo porque pareciera que son parecidos... No es de esperar alo asi como Visual Fox o Visua Basic.

La verdad necesito un codigo simple... que corra y me ayude a entender lo basico del JAVA.

Java fue el primer lenguaje que aprendi jejeje y antes no sabia programar n m.. fskjhfkasjfs asi que esa cosa es un mito urbano, no necesitas saber C++ para programar en Java.

Dejame prepararte un ejemplo simple de conexion a base de datos para que veas que es bastante sencillo.

Ahora.. con los reportes si es un huevo, pk Java por defecto no trae niguna API de generacion de reportes.

Por lo general tenes que o armarte vos una segun tus necesidades casi desde cero, u optar por alguna solucion de terceros... pero eso ya es $$$ aparte.