1、本地SQL查询
session.createSQLQuery(""),即写入原始的sql语句,就不多说了
2、OID查询
System.out.p rintln(is.getStaffName());
3、HQL查询
在查询方面灵活性最大
1、hql的参数绑定:
List list = session.createQuery("from Accountinfo where id =:id").setParameter("id", "1").list();
System.out.println(list.size());
同时还有一种方法就是将参数绑定到配置文件中去(个人感觉比较推荐):
在相应的pojo中找到对应的类(Accountinfo)加入代码(注意配置写在class后面):<query name="myExample">
<![CDATA[
from Accountinfo where id =:id
]]>
</query>
再在sql语句中写:
List list = session.getNamedQuery("myExample").setParameter("id", 1).list();
2、hql的多表查询:
//HQL(多表查询并封装对象)
String str = "select new com.cwtym.vo.Example(c.lendDirection, a.id) from Cashregister c, Accountinfo a where a.id=c.accountCode";
Query query = session.createQuery(str);
List list = query.list();
System.out.println(list.size());
Example类
public class Example {
private String a;
private String b;
public Example(String a, String b) {
super();
this.a = a;
this.b = b;
}
public String getA() {
return a;
}
public void setA(String a) {
this.a = a;
}
public String getB() {
return b;
}
public void setB(String b) {
this.b = b;
}
}
4、QBC查询
只是个人挺常用
Session session = HibernateSessionFactory.getSession();
Criteria c = session.createCriteria(Userinfo.class);
c.add(Restrictions.eq("email", emailId));
Userinfo userinfo = (Userinfo)c.uniqueResult();
5、QBE查询
根据例子查询,不是很清楚,目前为止还没有用过。