¿Realizar eficientemente operaciones CRUD con múltiples clases similares?

Con respecto a su opción dos : en primer lugar, puede tener un vehículo en lugar de un objeto , siempre que el vehículo diesel , eléctrico y de gas implemente / extienda el vehículo . Debería hacer el trabajo.

Además para ViewVehicle en la opción dos:

Public Object ViewVehicle (Vehículo objeto)

podría usar un método genérico para que siempre devuelva el mismo tipo en el que ingresa. Más información aquí: http://docs.oracle.com/javase/tutorial/extra/generics/methods.html ... aunque yo No tengo claro por qué intenta enviar un objeto a un método que luego se devuelve desde el método.

Respuesta 1

DAO genérico es lo que le puede interesar. Intentar evitar escribir la respuesta larga, así que aquí está el enlace. j-genericdao

Puede encontrar muchas variaciones de dao genérico en internet.

Respuesta: 2

Como dijiste al comienzo de tu pregunta:

Tengo una clase abstracta que llamaremos Vehículo. Clases de vehículos diesel, eléctricos y de gas.

Entonces Vehículo es la superclase, y Diesel, Eléctrico y Gas son las especializaciones.

Las tablas en la base de datos pueden reflejar este diseño

Vehicle (id, brand, price, type) // type could help you selecting electric,gas,diesel

Electric(vehicle_id, volts, amp, ohms, other_specific_stuff)
Gas(vehicle_id, pressure, gas_type, other_specific_stuff) 
Diesel(vehicle_id, other_specific_stuff) 

cuando consulta su vehículo, puede usar la unión externa izquierda

select * from vehicle as v
    left outer join electric as e on (v.id = e.vehicle_id)
    left outer join gas as g on (v.id = g.vehicle_id)
    left outer join diesel as d on (v.id = d.vehicle_id)

Luego, utiliza el campo de tipo para asignar a una subclase específica.

Cuando almacena o actualiza los objetos en la base de datos, necesita un método para almacenar las partes comunes:

void update(Vehicle v) { 
    // store v.* in Vehicle table
}

y un método que almacena el resto para el automóvil específico

void update(Electric e) {
    update(v)
    // store e.* on Electric table
}

Lo mismo para la eliminación e inserción.

Respuesta: 3

Estoy trabajando en un proyecto J2EE que implica almacenar códigos postales, ciudades y países juntos. Hemos desarrollado una clase Java que maneja la integración de cada archivo de país (que contiene cada ...

En Java 8, si tengo una lista de objetos como este: MyObject double a; doble b; doble c; Quiero obtener los totales de cada uno de estos campos en la lista de objetos. Una forma en que puedo hacerlo es ...

Estoy desarrollando una aplicación GWT en Eclipse y uso jdom2 para leer algunos archivos de propiedades xml personalizados. Después de una actualización reciente, mi aplicación ahora falla con el error anterior al intentar leer el xml ...

He creado un archivo Jar, pero no puedo hacer que se ejecute haciendo doble clic. Funciona bien usando java -jar name.jar o haciendo un archivo por lotes. Ya reinstalé jdk1.8.0_102, configuré JAVA_HOME ...