Hibernate是一个开放源代码的对象关系映射框架,他对JDBC进行了轻量级的封装,使Java开发员可以随心所欲的使用对象编程思维操作数据库。
SessionFactory接口负责初始化Hibernate.他充当数据储存源的代理,并负责创建Session对象。
Session:http是无状态的协议,没办法保存任何访问对象的信息,所以session用来记录访问者的一些信息。但是,在hibernate里面的session并不是http里的session,一般把httpSession成为用户会话。在hibernate里的session指的是应用程序和数据库的一次交互,包含了一般的crud操作。
Hibernate数据查询
Hibernate的数据查询方式主要有3种,它们是:
Hibernate Query Language(HQL)
Criteria Query
Native SQL
Hibernate Query Language(HQL)提供了十分强大的功能,推荐大家使用这种查询方式。HQL具有与SQL语言类似的语法规范,只不过SQL针对表中字段进行查询,而HQL针对持久化对象,它用来取得对象,而不进行update、delete和insert等操作。而且HQL是完全面向对象的,具备继承、多态和关联等特性。
Query query = session.createQuery(“from Student”);
List list = query.list();
Student stu = (Student)list.get(0);
Hibernate还支持Criteria查询(Criteria Query),这种查询方式把查询条件封装为一个Criteria对象。
Criteria cr = session.createCriteria(Student.class); //生成一个Criteria对象
cr.add(Restrictions.eq("name", "Bill"));//等价于where name=’Bill’
List list = cr.list();
Student stu = (Student)list.get(0);
crieria.uniqueResult();代表结果唯一取出结果