Hibernate增删改查

    xiaoxiao2021-04-16  29

    Hibernate增删改查

    Hibernate中增删改查都是基于session对象的。所以所有操作之前都要获取session.

    Session有两个形式,一种是注解形式的,一种是普通方式。

    1.普通方式

    publicclass HibernateUtil {

        privatestatic String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml";

        privatestaticfinal ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();

        private  static Configuration configuration = newConfiguration();    

       }

    2.注解方式

    publicclass HibernateUtil {

        privatestatic String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml";

        privatestaticfinal ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();

        private  static Configuration configuration = new AnnotationConfiguration();    

       }

     HibernateUtil 类myeclipse自动生成即可

     

           Session session = HibernateUtil.getSession();

            Transaction tx = session.beginTransaction();//开启事物

            session.save(实体对象);

            tx.commit();//提交事物

     

     

           Session session = HibernateUtil.getSession();

            Transaction tx = session.beginTransaction();

            session.delete(实体对象);

            tx.commit();

    Session session = HibernateUtil.getSession();

            Transaction tx = session.beginTransaction();

            session.update(实体对象);

            tx.commit();

    查询

    常用的查询有两种形式:

    1.hql查询

    A.无参数的查询

    Session session = HibernateUtil.getSession();

    Query query = session.createQuery("from 实体类名");

          List<实体类名> list=query.list();

    B.带参数查询

        Session session = HibernateUtil.getSession();

           Query query = session.createQuery("from 实体类名 where 属性名=?");

          query. setParameter (0,”属性的值”);

           List<实体类名> list=query.list();

             (2). Criteria查询

              A.无参数的查询

                      Criteria criteria = session.createCriteria(实体名.class);

                       List<实体类名> list = criteria.list();

       B.带参数查询

                    Criteria criteria = session.createCriteria(实体名.class);

                      criteria.add(Restrictions.eq(“属性名称”, “属性值”));

                    List<实体类名> list = criteria.list();

                      其中eq为等于除此之外还有like模糊查询,gt大于,lt小于等。

      

     

     

     C.表连接查询

            Criteria criteria = session.createCriteria(实体名1.class,”别名”);

            criteria.createAlias("实体2属性名", "别名");

            List<实体类名> list = criteria.list();

             实体2属性名:是属性名字,就是实体1中关联的实体2的属性名,不是实体名

             

     

             

     

    转载请注明原文地址: https://ju.6miu.com/read-673039.html

    最新回复(0)