Hibernate框架之路(四)hibernate查詢方式
阿新 • • 發佈:2017-08-31
集合 commit void div 第一個 -- cto 下標 action
OID查詢
/** * OID 查詢 * 根據ID查詢 * 一對多查詢 */ @Test public void test() { SessionFactory factory = null; Session session = null; Transaction ts = null; try { factory = HibernateUtils.getSessionFactory(); session= factory.openSession(); ts = session.beginTransaction(); // 查詢客戶所擁有的聯系人;先查詢客戶 ID=1的客戶;根據客戶查詢聯系人 User user = session.get(User.class, 1); //獲得聯系人的set集合 Set<Link> link = user.getLink(); // 輸出聯系人個數 System.out.println(link.size()); ts.commit(); }catch (Exception e) { ts.rollback(); }finally{ session.close(); factory.close(); } }
HQL查詢所有
/** *查詢所有 *hql */ @Test public void test2() { SessionFactory factory = null; Session session= null; Transaction ts = null; try { factory = HibernateUtils.getSessionFactory(); session = factory.openSession(); ts = session.beginTransaction(); // 查詢所有客戶 from 客戶實體類名稱 Query query = session.createQuery("from User"); List<User> list = query.list(); for (User user : list) { System.out.println(user.getuId()+"\t"+user.getuName()); } System.out.println("-------------------------"); Query query2 = session.createQuery("from Link"); List<Link> list2 = query2.list(); for (Link link : list2) { System.out.println(link.getcId()+"\t"+link.getcName()); } ts.commit(); } catch (Exception e) { ts.rollback(); }finally{ session.close(); factory.close(); } }
Hql條件查詢
@Test public void test2() { SessionFactory factory = null; Session session = null; Transaction ts = null; try { factory = HibernateUtils.getSessionFactory(); session = factory.openSession(); ts = session.beginTransaction(); //創建query對象 from Cuastomer where user_id=? and user_name=? Query query = session.createQuery("from User c where c.uId=? and c.uName=?"); /** * 向占位符裏填寫數據;占位符下標從0開始 * 第一個參數為下標 * 第二個參數為值 */ query.setParameter(0, 1); query.setParameter(1, "張三"); List<User> list = query.list(); for (User user : list) { System.out.println(user.getuTel()); } ts.commit(); } catch (Exception e) { ts.rollback(); }finally{ session.close(); factory.close(); } }
hql模糊查詢
@Test public void test2() { SessionFactory factory = null; Session session = null; Transaction ts = null; try { factory = HibernateUtils.getSessionFactory(); session = factory.openSession(); ts = session.beginTransaction(); //創建query對象 Query query = session.createQuery("from User c where c.uName like ?"); /** * 向占位符裏填寫數據;占位符下標從0開始 * 第一個參數為下標 * 第二個參數為值 */ query.setParameter(0, "%張%"); List<User> list = query.list(); for (User user : list) { System.out.println(user.getuTel()); } ts.commit(); } catch (Exception e) { ts.rollback(); }finally{ session.close(); factory.close(); } }
hql排序
@Test public void test2() { SessionFactory factory = null; Session session = null; Transaction ts = null; try { factory = HibernateUtils.getSessionFactory(); session = factory.openSession(); ts = session.beginTransaction(); //創建query對象 desc 倒序 asc正序 Query query = session.createQuery("from User order by uId asc"); List<User> list = query.list(); for (User user : list) { System.out.println(user.getuId()); } ts.commit(); } catch (Exception e) { ts.rollback(); }finally{ session.close(); factory.close(); } }
HQL分頁
@Test public void test2() { SessionFactory factory = null; Session session = null; Transaction ts = null; try { factory = HibernateUtils.getSessionFactory(); session = factory.openSession(); ts = session.beginTransaction(); //創建query對象 Query query = session.createQuery("from User"); query.setFetchSize(0);//開始位置 query.setMaxResults(3); //每頁顯示個數 List<User> list = query.list(); for (User user : list) { System.out.println(user.getuId()); } ts.commit(); } catch (Exception e) { ts.rollback(); }finally{ session.close(); factory.close(); } }
hql查詢某個字段
@Test public void test2() { SessionFactory factory = null; Session session = null; Transaction ts = null; try { factory = HibernateUtils.getSessionFactory(); session = factory.openSession(); ts = session.beginTransaction(); //創建query對象 Query query = session.createQuery("select uId from User"); List<Object> list = query.list(); for (Object object : list) { System.out.println(object); } ts.commit(); } catch (Exception e) { ts.rollback(); }finally{ session.close(); factory.close(); } }
hql函數查詢
@Test public void test2() { SessionFactory factory = null; Session session = null; Transaction ts = null; try { factory = HibernateUtils.getSessionFactory(); session = factory.openSession(); ts = session.beginTransaction(); //創建query對象 Query query = session.createQuery("select count(*) from User"); Object obj = query.uniqueResult(); Long lbj = (long) obj; int count = lbj.intValue(); System.out.println(count); ts.commit(); } catch (Exception e) { ts.rollback(); }finally{ session.close(); factory.close(); } }
Hibernate框架之路(四)hibernate查詢方式