1、标准查询Criteria (主要应用于简单的查询)
Session session=HibernateSessionFactory.getSession();
Query query=null;
Criteria criteria=session.createCriteria(Orders.class);
criteria.addOrder(Order.desc("orderDate"));//按照日期字段进行升序排序
List<Orders> lsod=criteria.list();
for (Orders od : lsod) {
System.out.println("订单编号:"+od.getOrderId());
System.out.println("==================");
}
2、HQL查询根据指定条件查询
注意:
所有HQL语句查询的都是实体类名,而不是表名,所有的条件都是对象的属性,而不是字段。
eg:from Orders where orderMode=? and orderTotal>?
Orders 为表映射的实体对象
orderMode、orderTotal为Orders 的属性
// 查询订单信息,条件为订购模式为direct,订单金额大于10000元的订单信息
String hql="from Orders where orderMode=? and orderTotal>? order by orderTotal";
query=session.createQuery(hql);
//设置查询参数
query.setParameter(0, "direct"); //0表示第一个“?”
query.setParameter(1, 10000.00); //1表示第二个“?”
List<Orders> lsod=query.list();
for (Orders od : lsod) {
System.out.println("订单编号:"+od.getOrderId());
System.out.println("==================");
}
3、hql–模糊查询
//查询产品信息中产品名称包含HD的所有产品信息
String hql="from ProductInformation where productName like ?";
query=session.createQuery(hql);
query.setParameter(0, "%HD%");
List<ProductInformation> lspd=query.list();
for (ProductInformation pd : lspd) {
System.out.println("产品编号:"+pd.getProductId());
System.out.println("========================