zoukankan      html  css  js  c++  java
  • Hibernate的api使用

    Query对象

      1 使用query对象,不需要写sql语句,但是写hql语句

        (1)hql:hibernate query language,hibernate提供查询语言,这个hql语句和普通sql语句很相似

        (2)hql和sql语句区别:

          - 使用sql操作表和表字段

          - 使用hql操作实体类和属性

      2 查询所有hql语句:

        (1)from 实体类名称

      3 Query对象使用

        (1)创建Query对象

        (2)调用query对象里面的方法得到结果

        @Test
        void testQuery() throws Exception {
            SessionFactory sessionFactory = null;
            Session session = null;
            Transaction tx = null;
            try {
                sessionFactory = HibernateUtils.getSessionFactory();
                session= HibernateUtils.openSession();
                tx = session.beginTransaction();
                
                Query qy = session.createQuery("from User");
                List<User> ls = qy.list();
                for(User user:ls)
                {
                    System.out.println(user);
                }
                
                tx.commit();
                
            } catch (Exception e) {
                
                e.printStackTrace();
                tx.rollback();
                
            } finally {
                
                session.close();
                sessionFactory.close();
            }
        }

     

     

    Criteria对象

      1 使用这个对象查询操作,但是使用这个对象时候,不需要写语句,直接调用方法实现

      2 实现过程

      (1)创建criteria对象

      (2)调用对象里面的方法得到结果

        @Test
        void testCriteria() throws Exception {
            SessionFactory sessionFactory = null;
            Session session = null;
            Transaction tx = null;
            try {
                sessionFactory = HibernateUtils.getSessionFactory();
                session= HibernateUtils.openSession();
                tx = session.beginTransaction();
                
                Criteria criteria = session.createCriteria(User.class);
                List<User> ls = criteria.list();
                for(User user:ls)
                {
                    System.out.println(user);
                }
                
                tx.commit();
                
            } catch (Exception e) {
                
                e.printStackTrace();
                tx.rollback();
                
            } finally {
                
                session.close();
                sessionFactory.close();
            }
        }

    SQLQuery对象

      1 使用hibernate时候,调用底层sql实现

      2 实现过程

        (1)创建对象

        (2)调用对象的方法得到结果

                SQLQuery sql = session.createSQLQuery("select * from t_user");
                List<Object[]> ls = sql.list();
                
                for(Object[] object:ls)
                {
                    System.out.println(Arrays.toString(object));
                }

          返回list集合每部分是数组

          返回list中每部分是对象形式

                SQLQuery sql = session.createSQLQuery("select * from t_user");
                
                sql.addEntity(User.class);
                
                List<User> ls = sql.list();
                
                for(User object:ls)
                {
                    System.out.println(object);
                }
                
                tx.commit();
  • 相关阅读:
    python requests 模拟登陆网站,抓取数据
    python 爬取淘宝的模特照片
    vim 和grep 正则表达式相似和区别
    python 读取文件时报错UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 205: illegal multibyte sequence
    python 正则表达式
    12个球,其中一个和其他的重量不一样,有一个天平,最多几次找出这个球
    25匹马中选出跑得最快的3匹,每次只有5匹马同时跑,最少要比赛几次
    1000瓶药水,1瓶有毒药,几只小白鼠能够找出毒药
    146 LRU Cache
    用两个int值实现读写锁
  • 原文地址:https://www.cnblogs.com/kpsmile/p/10050512.html
Copyright © 2011-2022 走看看