JAVA BDOO
Links
//BDOO Basics
ObjectDB Descargar. Server.exe
usar local, sacar el jar para esto
Añadir en libreria el fichero de jar
Ejecutar
//Simplified
EntityManagerFactory emf = Persistence.createEntityManagerFactory("BASE_DATOS/points.odb")
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
em.getTransaction().commit();
//Ejecutamos proyecto y genera un fichero odb.
//Este odb lo cargamos en oBjectdb. Boton derecho open tree table o lupa
this.comandoBD.getTransaction().begin(); // Iniciamos transaction
this.comandoBD.persist(c); // grabamos
this.comandoBD.getTransaction().commit(); // fin trascation , OK!
//Borrar: solo borra objetos que hayas buscado antes.
this.comandoBD.find(Cliente.class, new Cliente( Integer.parseInt(this.txtID.getText()),null));
//Modificar
//Rejilla datos
//Creamos query que y lo metemos en TypedQuery<Cliente>
List<Cliente> results = query.getResultList()
@ManyToOne Cliente clienteLoCompro; // que somos de un cliente OBJETO cliente
@ManyToOne Articulo articuloVendido; // que articulo se ha vendido.
@OneToMany (mappedBy="clienteLoCompro") Set <Venta> ventas; //Set es como conjunto o arraylist
//BDOO
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package ad.tarea05.json_to_bdoo;
import generated.Cliente;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;
import javax.persistence.TypedQuery;
import javax.swing.JOptionPane;
/**
*
* @author Alberto
*/
public class BDOO {
private EntityManagerFactory ooBD;
static EntityManager comandoDB;
boolean hayError;
String mensajeError;
EntityTransaction tx;
public BDOO() {
try {
// Creamos objeto de la base de datos..
ooBD = Persistence.createEntityManagerFactory("BASEDEDATOS/MISCLIENTES.odb"); // usando una base de datos local y en esta carpeta
// $objectdb == para referirnos a servidor con carpeta de datos.
comandoDB = ooBD.createEntityManager();
hayError = false;
} catch (Exception ex) {
mensajeError = ex.getMessage();
hayError = true;
System.out.println(mensajeError);
}
}
//METODO PARA AÑADIR CLIENTES A LA BDOO persists(objeto)
public void insert(Object objeto) { //Static method?
try {
comandoDB.getTransaction().begin(); // Iniciamos transaction
comandoDB.persist(objeto); // grabamos
comandoDB.getTransaction().commit(); // fin trascation , OK!
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Error grabando\n" + e.getMessage());
}
}
//METODO PARA LISTAR CLIENTES DESDE LA BDOO
public void listar() {
TypedQuery<Cliente> query = this.comandoDB.createQuery("Select c FROM Cliente c", Cliente.class);
List<Cliente> results = query.getResultList();
for (Cliente p : results) {
mostrarCliente(p);
}
}
//METODO PARA SACAR UN CLIENTE POR PANTALLA DESDE LA BDOO
private void mostrarCliente(Cliente cliente) {
System.out.println("Nombre: " + cliente.getNombre() + "\tId: " + cliente.getId() + "\tSaldo: " + cliente.getSaldo());
}
//BORRAR OBJETOS DE LA BDOO remove(objeto)
private void borrar(Integer id) {
Cliente c = new Cliente(id);
c = this.comandoDB.find(Cliente.class, c);
//Hay que encontrar un objeto para poder borrar
if(c == null){
System.out.println("No existe");
return; //si no existe salimos del método
}
try {
comandoDB.getTransaction().begin(); // Iniciamos transaction
comandoDB.remove(c); // grabamos
comandoDB.getTransaction().commit(); // fin trascation , OK!
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Error borrando\n" + e.getMessage());
}
}
//MODIFICAR OBJETOS - usar el setter de los objetos para modificar atributos
private void modificar(Integer id) {
Cliente c = new Cliente(id);
c = this.comandoDB.find(Cliente.class, c);
//Hay que encontrar un objeto para poder borrar
if(c == null){
System.out.println("No existe");
return;
}
//Hay que encontrar un objeto para poder modificar
try {
comandoDB.getTransaction().begin(); // Iniciamos transaction
// objeto.setNombre("Nombre cambiado");
// objeto.nombre = "Nombre Cambiado"; //tiene que ser publico
comandoDB.getTransaction().commit(); // fin trascation , OK!
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Error modificando\n" + e.getMessage());
}
}
//METODO PARA CERRAR LA CONEXION DE LA BASE DE DATOS
public void closeConnection() {
this.ooBD.close();
}
}