Hibernate的api使用
阿新 • • 發佈:2018-12-01
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物件裡面的方法得到結果
@Testvoid 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();