1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Como utilizar JPA com ObservableList - javaFX

Boa Tarde, amigos, estou fazendo uma app com javaFX e queria add dados de um select em uma table, já tenh o a estrutura da table toda pronta, e tbm o JPA, mais configurado para List, como faço para aceita ObservableList.

Classe Controle.

public class Controle implements Initializable {

    Medicamentos objRemedio = new Medicamentos();

    private MedicamentoDAO daoRemedios = new MedicamentoDAO(JPAFarmacia.getInstance().getEntityManager());

    private EntityManager entityManager = daoRemedios.getEntityManager();

    @FXML
    private TextField txValor;

    @FXML
    private Button btPesquisar;

    @FXML
    private TableView<ItensTable> tbRemedios;

    @FXML
    private TableColumn<ItensTable, Integer> columnId;

    @FXML
    private TableColumn<ItensTable, String> columnNome;

    @FXML
    private TableColumn<ItensTable, String> columnCategoria;

    @FXML
    private TableColumn<ItensTable, String> columnFucoes;

    @FXML
    private AnchorPane panel = new AnchorPane();

    private ObservableList<ItensTable> listRemedio = FXCollections.observableArrayList();
    //private List<ItensTable> list = new ArrayList<ItensTable>();


    public void initialize(URL arg0, ResourceBundle arg1) {

        initComponente();
        initTable();

    }

    private void initComponente() {

        columnId.setCellValueFactory(new PropertyValueFactory<ItensTable, Integer>("id"));
        columnNome.setCellValueFactory(new PropertyValueFactory<ItensTable, String>("nome"));
        columnCategoria.setCellValueFactory(new PropertyValueFactory<ItensTable, String>("categoria"));
        columnFucoes.setCellValueFactory(new PropertyValueFactory<ItensTable, String>("funcoes"));

    }


    private void initTable() {


        objRemedio = new Medicamentos();

        listRemedio = SelectDAO.listaMedicamento();

        tbRemedios.setItems( listRemedio );

        /*CarregaMedicamento carga = new CarregaMedicamento();
        carga.addMedicamentos(new Medicamentos(1, "Dipirona", "Ansalsesico",
                "Dor de cabeça"));

        for (Medicamentos m : carga.getMedicamento()) {

            listRemedio.add(new ItensTable(m.getId(), m.getNome(), m
                    .getCategoria(), m.getSintomas()));
        }

        tbRemedios.setItems(listRemedio);
        */
        //listRemedio = dao.listRemedio();

        //tbRemedios.setItems(listRemedio);

    }
}

Classe Do DAO.

    @SuppressWarnings("unchecked")
    public static ObservableList<ItensTable> listaMedicamento() {

        String sql = "select * from Medicamentos";

        ObservableList<ItensTable> objListRemedios = JPAFarmacia.getInstance().SQLNativoSelect(sql);

        return  objListRemedios;

    }

JPA.

package br.com.farmacia.JPA;

import java.awt.Component;
import java.awt.Container;
import java.io.Serializable;
import java.lang.reflect.Field;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import javafx.collections.ObservableList;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;
import javax.swing.JFormattedTextField;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

import br.com.farmacia.negocio.ItensTable;

/**
 * 
 * @author Familia
 * @param <T>
 */
public class JPAFarmacia<T> {

    @SuppressWarnings("rawtypes")
    private static JPAFarmacia me;
    private EntityManagerFactory emf;

    private JPAFarmacia() {

        try {
            emf = Persistence.createEntityManagerFactory("Farmacia");

        } catch (Exception e) {

            JOptionPane.showMessageDialog(null,"Houve um erro ao tentar conectar no Banco");
            e.printStackTrace();

        }

    }

    @SuppressWarnings("rawtypes")
    public static JPAFarmacia getInstance() {

        if (me == null) {

            me = new JPAFarmacia();
        }

        return me;
    }

    // Retornando o EntityManager
    public EntityManager getEntityManager() {

        EntityManager toReturn = emf.createEntityManager();
        toReturn.getTransaction().begin();

        return toReturn;
    }

    @SuppressWarnings({ "unchecked", "hiding" })
    public <T> List<T> getList(Class<T> classToCast, String jpql,
            Object... parameters) {

        List<T> toReturn = null;
        EntityManager em = getEntityManager();
        Query qr = em.createQuery(jpql);

        for (int i = 0; i < parameters.length; i++) {

            qr.setParameter(i + 1, parameters[i]);
        }

        toReturn = qr.getResultList();
        em.getTransaction().commit();
        em.close();

        return toReturn;
    }

    @SuppressWarnings({ "unchecked", "hiding" })
    public <T> T getSqlParam(Class<T> classToCast, String jpql,
            Object... parameters) {

        T toReturn = null;
        EntityManager em = getEntityManager();
        Query qr = em.createQuery(jpql);

        for (int i = 0; i < parameters.length; i++) {

            qr.setParameter(i + 1, parameters[i]);
        }

        toReturn = (T) qr.getSingleResult();
        em.getTransaction().commit();
        em.close();

        return toReturn;
    }

    public Double getTotalSql(String jpql, Object... parameters) {

        EntityManager em = getEntityManager();
        Query qr = em.createQuery(jpql);

        for (int i = 0; i < parameters.length; i++) {

            qr.setParameter(i + 1, parameters[i]);
        }

        Double toReturn;

        try {
            toReturn = (Double) qr.getSingleResult();
        } catch (Exception e) {

            toReturn = 0.0;

        }

        return toReturn;

    }

    public Integer getMax(String jpql, Object... parameters) {

        EntityManager em = getEntityManager();
        Query qr = em.createNativeQuery(jpql);

        for (int i = 0; i < parameters.length; i++) {

            qr.setParameter(i + 1, parameters[i]);
        }

        Integer toReturn = null;

        try {
            toReturn = (Integer) qr.getSingleResult();

        } catch (Exception e) {

            // e.printStackTrace();
            toReturn = null;

        }

        return toReturn;

    }

    public int SQLNativoExec(String jpql, Object... parameters) {

        EntityManager em = getEntityManager();
        Query qr = em.createNativeQuery(jpql);

        for (int i = 0; i < parameters.length; i++) {

            qr.setParameter(i + 1, parameters[i]);
        }

        int toReturn;

        try {
            toReturn = qr.executeUpdate();
            em.getTransaction().commit();
        } catch (Exception e) {

            e.printStackTrace();
            toReturn = 0;

        }

        return toReturn;

    }

    @SuppressWarnings("unchecked")
    public List<T> SQLNativoSelect(String jpql, Object... parameters) {

        EntityManager em = getEntityManager();
        Query qr = em.createNativeQuery(jpql);
        // Query tr = em.createNativeQuery(jpql, getClass());

        for (int i = 0; i < parameters.length; i++) {

            qr.setParameter(i + 1, parameters[i]);
        }

        List<T> toReturn;

        try {
            toReturn = qr.getResultList();
            em.getTransaction().commit();
        } catch (Exception e) {

            e.printStackTrace();
            toReturn = null;

        }

        return toReturn;

    }

    @SuppressWarnings("unchecked")
    public ObservableList<ItensTable> SQLObservableList(String jpql, Object... parameters) {

        EntityManager em = getEntityManager();
        Query qr = em.createNativeQuery(jpql);
        // Query tr = em.createNativeQuery(jpql, getClass());

        for (int i = 0; i < parameters.length; i++) {

            qr.setParameter(i + 1, parameters[i]);
        }

        ObservableList<ItensTable> toReturn;

        try {
            toReturn = (ObservableList<ItensTable>) qr.getResultList();
            em.getTransaction().commit();
        } catch (Exception e) {

            e.printStackTrace();
            toReturn = null;

        }

        return toReturn;

    }

    @SuppressWarnings("hiding")
    public <T> T getEntity(Class<T> entityClass, Serializable pk) {

        EntityManager em = getEntityManager();
        T toReturn = em.find(entityClass, pk);
        em.getTransaction().commit();
        em.close();
        // teste dsf

        return toReturn;
    }

    @SuppressWarnings({ "hiding", "unchecked" })
    public <T> T gravaEntity(Class<T> entityClass, Object dados) {

        EntityManager em = getEntityManager();

        em.persist(dados);

        T toReturn = (T) dados;

        em.getTransaction().commit();
        em.close();

        return toReturn;
    }

    @SuppressWarnings("rawtypes")
    static public void setAtributos(Object objeto, Object Valor) {
        String aux = null;
        Class classe = objeto.getClass();
        Field[] campos = classe.getDeclaredFields();
        for (int i = 0; i < campos.length; i++) {
            aux = "jtf";
            if (campos[i].getName().substring(0, 3).trim().equals(aux)) {
            }
        }
    }

    @SuppressWarnings("unused")
    static public void ideiaVamosVer(String nome) {

        JTextField jt = new JTextField();
        // jt = (JTextField) nome;
    }

    public static void carregaDadosClasse(Container container) {

        Component components[] = container.getComponents();

        for (Component component : components) {

            if (component instanceof javax.swing.JFormattedTextField) {
                JFormattedTextField field = (javax.swing.JFormattedTextField) component;
                field.setValue(null);
            } else if (component instanceof JTextField) {
                JTextField field = (JTextField) component;
                System.out.println("Nome do componente: " + field.getName());

                if (field.getName() == "txtnomeRazao") {

                    JOptionPane.showMessageDialog(null,
                            "Digite um valor válido no campo",
                            "Erro de validação" + field.getText(),
                            JOptionPane.ERROR_MESSAGE);

                }
                field.setText("");
            } else if (component instanceof javax.swing.JTextArea) {
                JTextArea area = (JTextArea) component;
                area.setText("");
            }
            // else if (component instanceof Container) {
            // limparCamposNoContainer((Container) component);
            // }
        }
    }

    public static byte[] gerarHash(String frase, String algoritmo) {

        /*
         * String frase = "Quero gerar códigos hash desta mensagem.";
         * System.out.println(stringHexa(gerarHash(frase, "MD5")));
         * System.out.println(stringHexa(gerarHash(frase, "SHA-1")));
         * System.out.println(stringHexa(gerarHash(frase, "SHA-256")));
         */

        try {
            MessageDigest md = MessageDigest.getInstance(algoritmo);
            md.update(frase.getBytes());
            return md.digest();
        } catch (NoSuchAlgorithmException e) {
            return null;
        }
    }

    public static String stringHexa(byte[] bytes) {
        StringBuilder s = new StringBuilder();
        for (int i = 0; i < bytes.length; i++) {
            int parteAlta = ((bytes[i] >> 4) & 0xf) << 4;
            int parteBaixa = bytes[i] & 0xf;
            if (parteAlta == 0)
                s.append('0');
            s.append(Integer.toHexString(parteAlta | parteBaixa));
        }
        return s.toString();
    }

    public static String getHost() {

        InetAddress thisIp = null;

        try {
            thisIp = InetAddress.getLocalHost();
        } catch (UnknownHostException e) {

            e.printStackTrace();
        }

        return thisIp.getHostAddress();
    }

    /**
     * Converte uma String para um objeto Date. Caso a String seja vazia ou
     * nula, retorna null - para facilitar em casos onde formulários podem ter
     * campos de datas vazios.
     * 
     * @param data
     *            String no formato dd/MM/yyyy a ser formatada
     * @return Date Objeto Date ou null caso receba uma String vazia ou nula
     * @throws Exception
     *             Caso a String esteja no formato errado
     */
    public static Date formataData(String data) throws Exception {
        if (data == null || data.equals("")
                || data.equals("00/00/0000 00:00:00"))
            return null;

        Date date = null;
        try {
            DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
            date = (java.util.Date) formatter.parse(data);
        } catch (ParseException e) {
            throw e;
        }
        return date;
    }

}
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

2 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags jpa javafx java eclipse estrutura-de-dados conversão ou faça a sua própria pergunta.