Rhythmk 学习 Hibernate 09 - Hibernate HQL
1、初始数据
@Test public void test01() { Session session = null; try { session = HibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); for (int i = 0; i < 100; i++) { book entity = new book(); entity.setBookCode("book-code-" + i); entity.setBookname("book-name" + i); entity.setPrice(i); session.save(entity); } session.getTransaction().commit(); } catch (HibernateException e) { e.printStackTrace(); } finally { if (session != null) session.close(); } }
2、查询对象
@Test public void test02() { Session session = null; // form 对象名 非 表名 String sql = " from book "; try { session = HibernateUtil.getSessionFactory().openSession(); Query query = session.createQuery(sql); List<book> list = (List<book>) query.list(); for (book b : list) { System.out.println(b); } } catch (HibernateException e) { e.printStackTrace(); } finally { if (session != null) session.close(); } }
3、查询单字段
@Test public void test03() { /* * 查询单字段 */ Session session = null; String sql = " select bookname from book "; try { session = HibernateUtil.getSessionFactory().openSession(); Query query = session.createQuery(sql); List<String> list = (List<String>) query.list(); for (String b : list) { System.out.println(b); } } catch (HibernateException e) { e.printStackTrace(); } finally { if (session != null) session.close(); } }
4、查询指定字段
@Test public void test04() { /* * 查询多字段,且指定条数Object[] */ Session session = null; String sql = " select bookname,bookCode from book "; try { session = HibernateUtil.getSessionFactory().openSession(); Query query = session.createQuery(sql); // 指定5条 query.setMaxResults(5); List<Object[]> list = (List<Object[]>) query.list(); for (Object[] b : list) { System.out.println(b[0] + "," + b[1]); } } catch (HibernateException e) { e.printStackTrace(); } finally { if (session != null) session.close(); } }
5、返回Map对象
@Test public void test05() { /* * 查询多字段,且指定Map */ Session session = null; String sql = " select new Map(bookname,bookCode) from book "; try { session = HibernateUtil.getSessionFactory().openSession(); Query query = session.createQuery(sql); query.setMaxResults(5); List<Map> list = (List<Map>) query.list(); for (Map b : list) { System.out.println((String) b.get("0") + "," + (String) b.get("1")); } } catch (HibernateException e) { e.printStackTrace(); } finally { if (session != null) session.close(); } }
6、序列化参数
6.1、
@Test public void test06() { Session session = null; String sql = " select bookname,bookCode from book where book_id>:book_id and price>:price"; try { session = HibernateUtil.getSessionFactory().openSession(); Query query = session.createQuery(sql); query.setInteger("book_id", 5); query.setDouble("price", 5); // Hibernate: select book0_.bookname as col_0_0_, book0_.bookCode as // col_1_0_ from t_book book0_ where book0_.book_id>? and // book0_.price>? List<Object[]> list = (List<Object[]>) query.list(); for (Object[] b : list) { System.out.println(b[0] + "," + b[1]); } } catch (HibernateException e) { e.printStackTrace(); } finally { if (session != null) session.close(); } }
6.2、
@Test public void test07() { Session session = null; String sql = " select bookname,bookCode from book where book_id>:book_id and price>:price"; try { session = HibernateUtil.getSessionFactory().openSession(); Query query = session.createQuery(sql); query.setInteger(0, 5); query.setDouble(1, 5); // Hibernate: select book0_.bookname as col_0_0_, book0_.bookCode as // col_1_0_ from t_book book0_ where book0_.book_id>? and // book0_.price>? List<Object[]> list = (List<Object[]>) query.list(); for (Object[] b : list) { System.out.println(b[0] + "," + b[1]); } } catch (HibernateException e) { e.printStackTrace(); } finally { if (session != null) session.close(); } }
7、执行SQL
@Test public void test08_jdbc() { Session session = null; //Rhythmk String sql = " select bookCode,bookname from t_book where book_id>? and price>?"; try { session = HibernateUtil.getSessionFactory().openSession(); SQLQuery query = session.createSQLQuery(sql); query.setInteger(0, 5); query.setDouble(1, 5); List<Object[]> list = (List<Object[]>) query.list(); for (Object[] b : list) { System.out.println(b[0] + "," + b[1]); } } catch (HibernateException e) { e.printStackTrace(); } finally { if (session != null) session.close(); } } }
http://pan.baidu.com/s/1hqGDNq0
一只站在树上的鸟儿,从来不会害怕树枝会断裂,因为它相信的不是树枝,而是它自己的翅膀。与其每天担心未来,不如努力做好现在。