elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Integrar java con sql
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Integrar java con sql  (Leído 6,633 veces)
Xedrox

Desconectado Desconectado

Mensajes: 274



Ver Perfil
Integrar java con sql
« en: 19 Diciembre 2010, 01:51 am »

Hola, la verdad es que parece medio raro el tema pero la cosa es asi, estoy haciendo  un programa Java que deberia trabajar con una sola tabla de una base de datos sql, ademas este programa trabaja desde una sola pc, no va ser usado en otras. Hay alguna forma de no tener que poner a funcionar el servidor sql por una sola tabla ? Desde ya gracias y saludos.


En línea

sapito169


Desconectado Desconectado

Mensajes: 628



Ver Perfil
Re: Integrar java con sql
« Respuesta #1 en: 20 Diciembre 2010, 00:52 am »

el asunto no es raro es muy comun solo que a muchos no le interesa o les da igual
aqui una propuesta de solucion no todos lo hacen igual y muchos tienes diferentes opiniones

fijate en el detalle que si quiero cambiar de base de datos en mememoria por una base de datos real tendrias que reemplasar AccesoADatosEnMemoriaProducto() cualquier clase que implemente AccesoADatosProducto
Código:
public class Main {
public static void main(String arg[]) {
AccesoADatosProducto accesoADatosProducto = new AccesoADatosEnMemoriaProducto();
accesoADatosProducto
.agregarProducto(new Producto(1, "computadora", 10));
accesoADatosProducto.agregarProducto(new Producto(2, "telivisor", 20));
accesoADatosProducto.agregarProducto(new Producto(3, "monitor", 30));

for (Producto producto : accesoADatosProducto.listarProducots()) {
System.out.println(producto);
}
}
}



Código:
import java.util.List;




[code]
import java.util.List;

public interface AccesoADatosProducto {

public abstract void agregarProducto(Producto Producto);

public abstract void eliminarProducto(int codigo);

public abstract void modificarProducto(int codigo, Producto nuevoProducto);

public abstract Producto obtenProducto(int codigo);

public abstract List<Producto> listarProducots();

}

Código:
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.List;

public class AccesoADatosEnMemoriaProducto implements AccesoADatosProducto {

private Hashtable<Integer, Producto> productos = new Hashtable<Integer, Producto>();

@Override
public void agregarProducto(Producto producto) {
productos.put(producto.getCodigo(), producto);
}

@Override
public void eliminarProducto(int codigo) {
productos.remove(codigo);
}

@Override
public void modificarProducto(int codigo, Producto nuevoProducto) {
if (productos.containsKey(codigo)) {
throw new RuntimeException("bruto no se puedo ingresar el producto"
+ nuevoProducto
+ "devido a que no existe un producto con el mismo codigo");
}
productos.put(codigo, nuevoProducto);
}

@Override
public Producto obtenProducto(int codigo) {
return productos.get(codigo);
}

@Override
public List<Producto> listarProducots() {
List<Producto> list = new ArrayList<Producto>();
Enumeration<Producto> enumproduct = productos.elements();
while (enumproduct.hasMoreElements()) {
Producto producto = (Producto) enumproduct.nextElement();
list.add(producto);
}
return list;
}

}

Código:
public class MySqlAccesoADatosProducto implements AccesoADatosProducto {

@Override
public void agregarProducto(Producto Producto) {

}

@Override
public void eliminarProducto(int codigo) {

}

@Override
public void modificarProducto(int codigo, Producto nuevoProducto) {

}

@Override
public List<Producto> listarProducots() {

return null;
}

@Override
public Producto obtenProducto(int codigo) {

return null;
}

}

Código:
public class Producto {
private int codigo;
private String nombre;
private double precio;

public Producto(int codigo, String nombre, double precio) {
this.codigo = codigo;
this.nombre = nombre;
this.precio = precio;

}

public int getCodigo() {
return codigo;
}

public void setCodigo(int codigo) {
this.codigo = codigo;
}

public String getNombre() {
return nombre;
}

public void setNombre(String nombre) {
this.nombre = nombre;
}

public double getPrecio() {
return precio;
}

public void setPrecio(double precio) {
this.precio = precio;
}

@Override
public String toString() {

return codigo + " " + nombre + " " + precio;
}

}


felizmente te diste cuenta a tiempo eso se puede hacer de muchas maneras solo es cuestión de jugar con las interfases y clases abstractas las soluciones mas comunes y que se la saben todo el mundo se llaman patrones de diseño

el patron de diseño para para cambiar la fuente de datos por cualquiera se llama dao es usado en combinacion de otros patrones como el factory(algunos les gusta abstracfactory) y el singleton
[/code]


« Última modificación: 20 Diciembre 2010, 01:11 am por sapito169 » En línea

Xedrox

Desconectado Desconectado

Mensajes: 274



Ver Perfil
Re: Integrar java con sql
« Respuesta #2 en: 25 Diciembre 2010, 06:04 am »

Hola sapito, ahora tengo poco tiempo para leerlo, gracias por la respuesta, cuando lo lea te hago la devolucion ;) . saludos
En línea

Xedrox

Desconectado Desconectado

Mensajes: 274



Ver Perfil
Re: Integrar java con sql
« Respuesta #3 en: 26 Diciembre 2010, 15:10 pm »

Hola sapito, ya lo lei y hasta me tuve que hacer un pequeño diagrama de clases para entenderlo jeje, pero si yo quisiera rescatar suponete un lote de datos de Productos de la siguiente consulta "SELECT * FROM Productos ORDER BY nombre" como harias?
En línea

sapito169


Desconectado Desconectado

Mensajes: 628



Ver Perfil
Re: Integrar java con sql
« Respuesta #4 en: 26 Diciembre 2010, 23:39 pm »

huu que bonito con los copos de nieve
 ;-)

aqui una posible solcion
en la interfase AccesoADatosProducto

agregale un metodo para que liste productos con parametro tipo enum

listarProducots(PROPIEDADPRODUCTO ordenado)

y luego ese metodo tendria que estar implementado en todas sus clases concretas que sean hijas de la interfas
asi podrias hacer cosas como
Código:
for (Producto producto : accesoADatosProducto.listarProducotsOrdenadosPor(PROPIEDADPRODUCTO.NOMBRE)) {
System.out.println(producto);
}

aserca de como ordenar una lista usa cualquier metodo de ordenamiento burbuja quiksort etc
« Última modificación: 27 Diciembre 2010, 03:47 am por sapito169 » En línea

Xedrox

Desconectado Desconectado

Mensajes: 274



Ver Perfil
Re: Integrar java con sql
« Respuesta #5 en: 28 Diciembre 2010, 00:21 am »

huu que bonito con los copos de nieve
 ;-)

aqui una posible solcion
en la interfase AccesoADatosProducto

agregale un metodo para que liste productos con parametro tipo enum

listarProducots(PROPIEDADPRODUCTO ordenado)

y luego ese metodo tendria que estar implementado en todas sus clases concretas que sean hijas de la interfas
asi podrias hacer cosas como
Código:
for (Producto producto : accesoADatosProducto.listarProducotsOrdenadosPor(PROPIEDADPRODUCTO.NOMBRE)) {
System.out.println(producto);
}

aserca de como ordenar una lista usa cualquier metodo de ordenamiento burbuja quiksort etc


Pero el ordenamiento de listas (por lo menos para el ArrayList) solo es aplicable para objetos de clases "wrapers", suponete que quiero imprimir el ArrayList ordenado por el codigo de producto, como harias ? Se me ocurre una forma pero es muy poco eficiente, consiste en copiar en un arraylist solo el codigo, ordenarlo y luego releer por cada codigo la lista original e ir imprimiendo.
En línea

sapito169


Desconectado Desconectado

Mensajes: 628



Ver Perfil
Re: Integrar java con sql
« Respuesta #6 en: 28 Diciembre 2010, 01:06 am »

falta un poco de creatividad y adapatacion
en todos los metodos de ordenamiento siempre tienen que hacer una conparacion dentro de un if solo es cuestion de adaptarlo a nuestras necesisdades
olvidate de las ideas fijas busca soluciones y modifica y adapta lo que ya sabes cuando me dicen cosas como esa es lo mismo que digas que no sabes cuanto es 1 mansana mas otra mansana por que te enseñaron a sumar con peras  :xD

bueno en este momento no tengo compilador asi que no puedo mandarte codigo pero tambien te digo que la clase Collections tiene un metodo que ordena listas de objetos
seria bueno que te leeas un poco de como se trabaja del api de colectiones de java y que le des una ojeada a la documentacion
Código:
import java.util.*;
public class EmpSort {
    static final Comparator<Employee> SENIORITY_ORDER =
                                 new Comparator<Employee>() {
        public int compare(Employee e1, Employee e2) {
            return e2.hireDate().compareTo(e1.hireDate());
        }
    };

    // Employee database
    static final Collection<Employee> employees = ... ;

    public static void main(String[] args) {
        List<Employee>e = new ArrayList<Employee>(employees);
        Collections.sort(e, SENIORITY_ORDER);
        System.out.println(e);
    }
}

http://download.oracle.com/javase/1.4.2/docs/api/java/util/Collections.html
http://download.oracle.com/javase/1.4.2/docs/api/java/util/Comparator.html
http://download.oracle.com/javase/tutorial/collections/interfaces/order.html


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Integrar ASM dentro de VB
Programación Visual Basic
Krnl64 0 992 Último mensaje 29 Mayo 2006, 23:25 pm
por Krnl64
integrar python a dos « 1 2 »
Scripting
s1d4rt4 15 7,976 Último mensaje 14 Julio 2006, 12:01 pm
por Division-x
Integrar adsense en vb.net
.NET (C#, VB.NET, ASP)
.:Weeds:. 6 4,376 Último mensaje 10 Noviembre 2010, 15:17 pm
por [D4N93R]
Integrar GDocs a Joomla
Desarrollo Web
Castg! 2 3,999 Último mensaje 28 Febrero 2011, 13:33 pm
por Castg!
Integrar SP1 a Win 7
Windows
Zorronde 4 4,601 Último mensaje 27 Marzo 2011, 21:40 pm
por SuperDraco
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines