首页 | 联系我们 | 叶凡网络官方QQ群:323842844
游客,欢迎您! 请登录 免费注册 忘记密码
您所在的位置:首页 > 开发语言 > Java开发 > 正文

hibernate中的 HQL 和其他

作者:cocomyyz 来源: 日期:2013-08-04 23:49:51 人气:7 加入收藏 评论:0 标签:java

public class Test {
private static SessionFactory factory;
static {
  Configuration config = new Configuration().configure();
  // 加载XML文件
  factory = config.buildSessionFactory();
}

public static void saveUser(User user) {
  Session session = factory.openSession();
  Transaction tx = session.beginTransaction();
  session.save(user);
  tx.commit();
  session.close();
}

public static void updateUser(User user) {
  Session session = factory.openSession();
  Transaction tx = session.beginTransaction();
  user = (User) session.get(User.class, 2);
  user.setName("222");
  user.setPassword("ddd");
  session.update(user); // 对象处于缓存之中
  tx.commit();
  session.close();
}

public static User findUserById(int id) {
  Session session = factory.openSession();
  User user = (User) session.get(User.class, id);
  session.close();
  return user;
}

public static void testSaveUser() {
  User user = new User();
  user.setCode("001");
  user.setName("Tom");
  user.setPassword("123");
  saveUser(user);
}

public static void testObjectStatus() {
  Session session = factory.openSession();
  Transaction tx = session.beginTransaction();

  User user = null;
  user = new User(); // 临时对象 user.setName("aaa"); user.setCode("004");
  session.save(user); // 持久化对象 System.out.println("id:" + user.getId());
  // session.saveOrUpdate(user);
  // session.evict(user);
  user = (User) session.get(User.class, 13);
  user.setName("aaa");

  session.flush(); // 手工清理缓存
  // session.delete(user);
  tx.commit();
  session.close();
  user.setCode("11");
  user.setName("bbb");
  user.setPassword("aadd");
  // session.clear(); //此时user对象是游离态对象

}

public static void checkObjectState(Session session, Object obj) {
  if (session.contains(obj)) {
   System.out.println("obj 是持久态的");
  } else {
   System.out.println("obj 不是持久态的");
  }
}

public static void testUpdate() {
  Session session = factory.openSession();
  Transaction tx = session.beginTransaction();

  User u1 = (User) session.get(User.class, 18);

  tx.commit();
  session.close();
}

public static void deleteUser(User user) {
  Session session = factory.openSession();
  Transaction tx = session.beginTransaction();
  session.delete(user);
  tx.commit();
  session.close();
}

public static void testHQL() {
  Session session = factory.openSession();
  // String hql = "select u from User as u, Grade g" +
  // " where u.grade.id=g.id and g.name=?" +
  // " order by u.code desc";
  String hql = "from User u where u.grade.id in "
    + "( select g.id from Grade g where g.name=?)";

  User u = (User) session.createQuery(hql).setString(0, "3班")
    .setMaxResults(1).uniqueResult();
  // for(User u : users) {
  System.out.println("id:" + u.getId() + ", code:" + u.getCode());
  // }
  session.close();
}

public void TestQuery() {
  Session session = factory.openSession();
  Transaction tx = session.beginTransaction();

  // String hql = "from User as user";
  // String hql = "from User as user where user.name='liming2'";
  // String hql = "select user.id, user.name from User as user";
  // String hql = "from User as u where name = :name";
  // String hql = "from User as user where user.name=?";
  // String sql = "select u.* from t_user as u, t_grade as g where
  // u.grade_id=g.id";
  String hql = "select u from User u ,Grade g where u.grade.id=g.id";

  Query query = session.createQuery(hql);

  // query.setFirstResult(0);
  // query.setMaxResults(3);
  // query.setParameter("name", "liming");
  // query.setString(0, "liming2");

  List<User> users = (List) query.list();

  // List<Object[]> users = query.list();

  /*
  * for(Object[] obj: users){ System.out.println(obj[0]);
  * System.out.println(obj[1]); }
  */

  for (User user : users) {
   System.out.println("name: " + user.getName());
   System.out.println("gradeName: " + user.getGrade().getName());
  }

  session.close();
}

private void testCriteria() {
  Session session = factory.openSession();

  Criteria cta = session.createCriteria(User.class);

  User user = new User();
  user.setName("liming");

  cta.add(Example.create(user));

  List<User> users = cta.list();

  for (User u : users) {
   System.out.println("name: " + u.getName());
   System.out.println("gradeName: " + u.getGrade().getName());
  }
}

private void testSQLQuery() {
  Session session = factory.openSession();
  List<User> list = session.createSQLQuery("select * from t_user")
    .addEntity(User.class).list();

  for (User u : list) {
   System.out.print("name: " + u.getName() + "\t");
   System.out.println("gradeName: " + u.getGrade().getName());
  }
}
}


本文网址:http://www.mingyangnet.com/html/java/170.html
读完这篇文章后,您心情如何?
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
更多>>网友评论
发表评论
编辑推荐
  • 没有资料