Vistas de página en total

martes, 9 de diciembre de 2014

Insercion de Datos a 2 tablas en MySQL con Hibernate, JFS y primefaces

Se necesita tener conocimientos previos de java con frameworks jsf e hibernate y nocion de primefaces. Una vez creado el Formulario en JFS un ejemplo:



Nota: en el atributo value se pondra el managedBean para usar en el formulario el cual contiene los datos de los modelos  value="#{nombreBean.metodo().variable} en el atributo action se pondra el metodo que hace la insercion atravez de Hibernate action="#{nombreBean.metodo()}
en el hibernate.cfg.xml se pondra las propiedades para la conexion con la base de datos MySQL y el mapeo de los modelos se genera automaticamente despues de crear los pojos ejemplo:

lo siguiente es hacer la reingeniera inversa para hacer el filtro de las tablas con la aplicacion web y quedaria un codigo como el siguiente:

<hibernate-reverse-engineering>  <schema-selection match-catalog="inee"/>  <table-filter match-name="perfil"/>  <table-filter match-name="usuarios"/>  <table-filter match-name="login"/>  <table-filter match-name="recursos"/></hibernate-reverse-engineering>


Luego creamos los pojos solo se podran crear si ya tenemos la reingenieria inversa creada en nuestro proyecto debe quedar asi:

Se crean las clases o modelos y los archivos xml por parte de Hibernate ahora creamos los DAO necesarios en este caso 2 porque insertaremos en 2 tablas de MySQL
Dao User

public class usersDAO implements FrondEndUser{    private Session session;       @Override    public boolean registerUsers(Usuarios user) throws Exception {        //iniciar la session de conexion con hibernate y abrimos la sesion de conexion a la bd
        session = HibernateUtil.getSessionFactory().openSession();        //creamos la transaccion y la comenzamos        Transaction transaction = session.beginTransaction();        session.save(user);//guardar los datos        transaction.commit();//cerrar transaccion         session.close();//cierra la sesion
        return true;    } }


Dao Login

public class loginDAO implements FrondEndLogin{    private Session session;       @Override    public boolean registerLogin(Login login) throws Exception {         //iniciar la session de conexion con hibernate y abrimos la sesion de conexion a la bd
        session = HibernateUtil.getSessionFactory().openSession();        //creamos la transaccion y la comenzamos        Transaction transaction = session.beginTransaction();        session.save(login);//guardar los datos        transaction.commit();//cerrar transaccion         session.close();//cierra la sesion        return true;    }}


Estas 2 clases debes ser implementadas por sus interfaces o frondend

frondend user

public interface FrondEndUser {    public boolean registerUsers(Usuarios user) throws Exception;    public List<Usuarios> listUsers() throws Exception;    public Usuarios updateUsers(int id) throws Exception;    public Usuarios deleteUsers(int id) throws Exception;}

frondend login

public interface FrondEndLogin {    public boolean registerLogin(Login login) throws Exception;    public Login updateLogin (int id) throws Exception;    public Login deleteLogin (int id) throws Exception;}

crearemos el managedBean para hacer el control algo asi como un servlet en el sentido de controlador ejemplo:

@ManagedBean@RequestScopedpublic class ManagedBeanUser {    private Usuarios user;    private Login login;    public List<Usuarios> listUser;//    private String confirPassword;       public ManagedBeanUser() {        user = new Usuarios();        user.setIdusuarios(null);        login = new Login();        login.setIdlogin(null);    }       public String registerUser() throws Exception {        usersDAO daoUsers = new usersDAO();        daoUsers.registerUsers(this.user);        loginDAO daoLogin = new loginDAO();        daoLogin.registerLogin(login);        return "User/RegisterUser";    }    public Login getLogin() {        return login;    }    public void setLogin(Login login) {        this.login = login;    }    public Usuarios getUser() {        return user;    }    public void setUser(Usuarios user) {        this.user = user;    }    public List<Usuarios> getListUser() {        return listUser;    }    public void setListUser(List<Usuarios> listUser) {        this.listUser = listUser;
    }}

y probamos en la salida de consola debe  decir esto:

Información:   Hibernate: insert into inee.usuarios (nombres, ap, am, email, direccion, fechaNacimiento, sexo) values (?, ?, ?, ?, ?, ?, ?)Información:   Hibernate: insert into inee.login (user, pass) values (?, ?)


quiere decir que la insercion se realizo exitosamente :) :D saludos...


No hay comentarios:

Publicar un comentario