Aquí te dejo un código que le  implemente hace mucho tiempo..espero que te sirva.
 
Paquete VISTA 
 Código PHP:
    package Vista;
import Modelo.modEmpleado;
import java.awt.event.ActionListener;
public class frmEmpleado extends javax.swing.JDialog {
    private modEmpleado me = new modEmpleado();
 
    public frmEmpleado(java.awt.Frame parent, boolean modal, modEmpleado me){
        super(parent, modal);
        initComponents();
        establecerActionCommands();
        cargarInformacion();
        this.me = me;
    }
 
    private void cargarInformacion(){
        String s = String.valueOf(me.maxCod());
        int a = Integer.parseInt(s);
        String s1 = String.valueOf(a+1);
        codigo.setText(s1);
    }
 
    private void establecerActionCommands(){
        adicionar.setActionCommand("1");
        actualizar.setActionCommand("2");
        eliminar.setActionCommand("3");
    }
 
    public void registrarControlador(ActionListener al){
        adicionar.addActionListener(al);
        eliminar.addActionListener(al);
        actualizar.addActionListener(al);
    }
 
    private javax.swing.JButton actualizar;
    private javax.swing.JButton adicionar;
    private javax.swing.JButton eliminar;
    public javax.swing.JTextField apellido;
    public javax.swing.JTextField ci;
    public javax.swing.JTextField codigo;
    public javax.swing.JTextField fecha;
    public javax.swing.JTextField nombre;
    public javax.swing.JComboBox sexo;
} 
    
  Paquete Modelo 
 Código PHP:
    package Modelo;
public class modEmpleado {
    static Session session = HibernateUtil.getSessionFactory().openSession();
    private Empleado e;
 
    public void adicionar(int codEmp, String nombre, String apellido, int ci, String sexo, String fecha){
        Transaction tx = session.beginTransaction();
        try {
            tx.begin();
            e = new Empleado(codEmp, nombre, apellido, ci, sexo, fecha);
            session.persist(e);
            tx.commit();
//            session.close();
        } catch (Exception ex) {
            ex.getLocalizedMessage();
            tx.rollback();
        }
    }
 
    public boolean existeCodigo(int cod){
        return (getCodigo(cod) != null);
    }
 
    private Empleado getCodigo(int cod){
        ScrollableResults sr = null;
        Transaction tr = session.beginTransaction();
        sr = session.createQuery("From Empleado As emp WHERE emp.codEmp="+cod).scroll();
        if(sr.next())
            return (Empleado) sr.get(0);
        return null;
    }
 
    public void eliminar(int cod){
        Transaction tr = session.beginTransaction();
        try {
            tr.begin();
            Query hql = session.createQuery("Delete From Empleado As e WHERE e.codEmp="+cod);
            hql.executeUpdate();
            tr.commit();
//            session.close();
        } catch (Exception ex) {
            ex.getLocalizedMessage();
            tr.rollback();
        }
    }
 
    public void actualizar(int codEmp, String nomb, String ape, int ci, String sex, String fec){
        Transaction tr = session.beginTransaction();
        try {
            tr.begin();
            Query hql = session.createQuery("Update Empleado As e Set e.nombre='"+nomb+"', e.apellido='"+ape+"', e.ci="+ci+", e.sexo='"+sex+"', e.fecha='"+fec+"' WHERE e.codEmp="+codEmp);
            hql.executeUpdate();
            tr.commit();
//            session.close();
        } catch (Exception ex) {
            ex.getLocalizedMessage();
            tr.rollback();
        }
    }
 
    public Object maxCod(){
        ScrollableResults sr = null;
        Object s = null ;
        Transaction tx = session.beginTransaction();
        sr = session.createQuery("Select max(codEmp) From Empleado").scroll();
        if(sr.next())
            s = sr.get(0);
        return s;
    } 
    
  Paquete Controlador 
 Código PHP:
    public class contEmpleado implements ActionListener{
    private frmEmpleado fe;
    private modEmpleado me;
 
    public contEmpleado(frmEmpleado fe, modEmpleado me){
        this.fe = fe;
        this.me = me;
        fe.registrarControlador(this);
    }
    public void actionPerformed(ActionEvent e) {
        switch(Integer.parseInt(e.getActionCommand())){
            case 1:
                if(validar()){
                    if(!me.existeCodigo(Integer.parseInt(fe.codigo.getText()))){
                        JOptionPane.showMessageDialog(null, "Los datos se Guardaron satisfactoriamente");
                        me.adicionar(Integer.parseInt(fe.codigo.getText()), fe.nombre.getText(),
                        fe.apellido.getText(), Integer.parseInt(fe.ci.getText()), fe.sexo.getSelectedItem().toString(), fe.fecha.getText());
                        actualizar();
                    }
                    else
                        JOptionPane.showMessageDialog(null, "Error..! Verifique el código");
                }
                else
                    JOptionPane.showMessageDialog(null, "Datos incorrectos..");
                break;
            case 2:
                if(validar()){
                    if(me.existeCodigo(Integer.parseInt(fe.codigo.getText()))){
                        JOptionPane.showMessageDialog(null, "Los datos se Actualizaron satisfactoriamente");
                        me.actualizar(Integer.parseInt(fe.codigo.getText()), fe.nombre.getText(),
                        fe.apellido.getText(), Integer.parseInt(fe.ci.getText()), fe.sexo.getSelectedItem().toString(), fe.fecha.getText());
                        actualizar();
                    }
                    else
                        JOptionPane.showMessageDialog(null, "Error..! Este código no esta Registrado");
                }
                else
                    JOptionPane.showMessageDialog(null, "Datos incorrectos..");
                break;
            case 3:
                if(validarCodigo()){
                    if(me.existeCodigo(Integer.parseInt(fe.codigo.getText()))){
                        JOptionPane.showMessageDialog(null, "Los datos se Eliminaron satisfactoriamente");
                        me.eliminar(Integer.parseInt(fe.codigo.getText()));
                        cargarInformacion();
                    }
                    else
                        JOptionPane.showMessageDialog(null, "Este datos no se encuentra Registrado..");
                }
                else
                    JOptionPane.showMessageDialog(null, "Datos incorrectos..");
                break;
        }
 
    }
 
    private boolean validar(){
        return (!fe.codigo.getText().equals("") && !fe.ci.getText().equals("") && !fe.nombre.getText().equals("") && !fe.apellido.getText().equals(""));
    }
 
 
    private boolean validarCodigo(){
        return (!fe.codigo.getText().equals(""));
    }
 
    private void cargarInformacion(){
        String s = String.valueOf(me.maxCod());
        int a = Integer.parseInt(s);
        String s1 = String.valueOf(a+1);
        fe.codigo.setText(s1);
    }
 
    public void actualizar(){
        cargarInformacion();
        fe.nombre.setText("");
        fe.ci.setText("");
        fe.apellido.setText("");
        fe.fecha.setText("");
    }
}