Guest User

Untitled

a guest
Nov 29th, 2018
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.75 KB | None | 0 0
  1. package com.test;
  2.  
  3. import java.util.HashSet;
  4. import java.util.List;
  5. import java.util.Set;
  6.  
  7. import org.hibernate.Criteria;
  8. import org.hibernate.Query;
  9. import org.hibernate.SQLQuery;
  10. import org.hibernate.Session;
  11. import org.hibernate.SessionFactory;
  12. import org.hibernate.Transaction;
  13. import org.hibernate.cfg.Configuration;
  14. import org.hibernate.criterion.Order;
  15. import org.hibernate.criterion.ProjectionList;
  16. import org.hibernate.criterion.Projections;
  17. import org.hibernate.criterion.Restrictions;
  18.  
  19. import com.pojo.Address;
  20. import com.pojo.User;
  21. import com.util.HibernateUtil;
  22.  
  23. public class Test {
  24. public static void main(String[] args){
  25.  
  26. Session session = HibernateUtil.getSesion();
  27. Transaction tran = session.beginTransaction();
  28.  
  29.  
  30. //添加一条记录
  31. User user = new User();
  32. user.setName("jerry");
  33. user.setPassword("100");
  34. session.save(user);
  35. user.setPassword("***");
  36. tran.commit();
  37.  
  38.  
  39. /**
  40. * 使用hql查询
  41. */
  42.  
  43. //查询一条记录
  44. //方法一:
  45. User user = (User) session.get(User.class, 1);
  46. //方法二:
  47. String hql = "select name,password from User where id = ?";
  48. Query query = session.createQuery(hql);
  49. query.setParameter(0, 1);
  50. Object[] str = (Object[]) query.uniqueResult();
  51. for(Object s:str){
  52. System.out.println(s);
  53. }
  54.  
  55. /*//查询所有记录
  56. String hql = "from User";
  57. Query query = session.createQuery(hql);
  58. List<User> list = query.list();
  59. for(User u:list){
  60. System.out.println(u.getName());
  61. }*/
  62.  
  63. //分页显示
  64. String hql = "from User";
  65. Query query = session.createQuery(hql);
  66. query.setFirstResult(0);
  67. query.setMaxResults(2);
  68.  
  69. List<User> list = query.list();
  70. for(User u:list){
  71. System.out.println(u.getName());
  72. }
  73.  
  74. /**
  75. * Criteria查询
  76. */
  77. Criteria c = session.createCriteria(User.class);
  78.  
  79. //返回所有
  80. List<User> list = c.list();
  81. for(User u:list){
  82. System.out.println(u.getName());
  83. }
  84.  
  85.  
  86. //where
  87. //查询name为tom且id为1的
  88. c.add(Restrictions.eq("name", "tom"));
  89. c.add(Restrictions.eq("id", 1));
  90. User user = (User) c.uniqueResult();
  91. System.out.println(user.getName());
  92.  
  93. //查询name为tom或jerry的
  94. c.add(Restrictions.or(Restrictions.eq("name", "tom"), Restrictions.eq("name", "jerry")));
  95. List<User> list = c.list();
  96. for(User u:list){
  97. System.out.println(u.getName());
  98. }
  99.  
  100. //分页显示
  101. c.setFirstResult(0);
  102. c.setMaxResults(2);
  103. List<User> list = c.list();
  104. for(User u:list){
  105. System.out.println(u.getName());
  106. }
  107.  
  108.  
  109. //分组与统计
  110. //统计id列的和
  111. c.setProjection(Projections.sum("id"));
  112. Object obj = c.uniqueResult();
  113. System.out.println(obj);
  114.  
  115. //分组查询
  116. c.setProjection(Projections.groupProperty("name"));
  117. //Hibernate: select this_.name as y0_ from user this_ group by this_.name
  118. List<String> list = c.list();
  119. for(String u:list){
  120. System.out.println(u);
  121. }
  122.  
  123. ProjectionList list = Projections.projectionList();
  124. list.add(Projections.max("id"));
  125. list.add(Projections.min("id"));
  126. //Hibernate: select max(this_.id) as y0_, min(this_.id) as y1_ from user this_
  127. c.setProjection(list);
  128. Object[] obj = (Object[]) c.uniqueResult();
  129. for(Object s:obj){
  130. System.out.println(s);
  131. }
  132.  
  133.  
  134. //排序
  135. c.addOrder(Order.desc("id"));
  136. List<User> list = c.list();
  137. for(User u:list){
  138. System.out.println(u.getName());
  139. }
  140.  
  141.  
  142. /**
  143. * 使用原生sql查询
  144. */
  145. String sql = "select id,name,password from user";
  146. //方法一:
  147. SQLQuery query = session.createSQLQuery(sql);
  148. List list = query.list();
  149. for(Object obj:list){
  150. Object[] rows = (Object[]) obj;
  151. System.out.println("id:"+rows[0]+"name:"+rows[1]+"password:"+rows[2]);
  152. }
  153. //方法二:
  154. SQLQuery query = session.createSQLQuery(sql).addEntity(User.class);
  155. List<User> list = query.list();
  156.  
  157.  
  158. tran.commit();
  159. }
  160.  
  161. }
Add Comment
Please, Sign In to add comment