Hibernate提供以下几种检索对象的方式
1.OID检索方式:按照对象的OID来检索对象
2.HQL检索方式:使用面向对象的HQL查询语言
3.QBC检索方式:使用QBC检索对象
4.sql语句查询
首先搭建一个项目
创建实体类
编写映射文件
测试类代码
public class test { @Test public void test1() { Session session = HibernateUtil.openSession(); Transaction tx = session.beginTransaction(); //使用OID方式查询 //后面的1就是id的值也就是查询id值为1的用户 //get()和load()的区别 get查询时id不存在时会返回null load查询时id不存在会报错 User user1 = (User) session.get(User.class, 10); // User user2 = (User) session.load(User.class, 10); System.out.println(user1); // System.out.println(user2); tx.commit(); session.close(); } @Test public void test2() { Session session = HibernateUtil.openSession(); Transaction tx = session.beginTransaction(); //使用QBC查询方式 List<User> list = session.createCriteria(User.class).list(); for (User user : list) { System.out.println(user); } tx.commit(); session.close(); } @Test public void test3() { Session session = HibernateUtil.openSession(); Transaction tx = session.beginTransaction(); //使用HQL查询方式 List<User> list = session.createQuery("from User").list(); for (User user : list) { System.out.println(user); } tx.commit(); session.close(); } @Test public void test4() { Session session = HibernateUtil.openSession(); Transaction tx = session.beginTransaction(); //使用SQL查询方式 有两种方式 /* List<Object[]> list = session.createSQLQuery("select * from User").list(); for (Object[] user : list) { System.out.println(Arrays.toString(user)); }*/ List<User> list = session.createSQLQuery("select * from User") .addEntity(User.class) .list(); for (User user : list) { System.out.println(user); } tx.commit(); session.close(); } @Test public void test5() { Session session = HibernateUtil.openSession(); Transaction tx = session.beginTransaction(); //别名的使用查询 /* List<User> list = session.createQuery("from User u").list(); System.out.println(list);*/ // 使用别名带参数查询 List<User> list = session.createQuery("from User as u where u.username = ?").setString(0, "赵云").list(); System.out.println(list); tx.commit(); session.close(); } }