hibernate常用语句

----------------------------------------------------------------------
HQL(Hibernate Query Language)是面向对象的查询语言

1 按照位置绑定

Query query = session.createQuery("from Customer c where c.username = ?");
query.setString(0, "name1");
Customer customer = (Customer)query.uniqueResult();
//Customer customer = (Customer)query.setMaxResults(1).uniqueResult();
System.out.println(customer.getUsername());

2
Iterator<Users> it= session.createQuery(" FROM Users WHERE username=? AND age=?").setString(0, "hujin").setInteger(1, 25).list().iterator();
while(it.hasNext())
{
Users user = it.next();
System.out.println("用户:"+user.getUsername()+" 密码:"+user.getPassword());
}
3
List result=session.createQuery("……").setString("customerName","Tom").setInteger("customerAge",21).list();


----------------------------------------------------------------------

QBC检索方式

1 //创建一个Criteria对象
Criteria criteria=session.createCriteria(Customer.class);

//设定查询条件,然后把查询条件加入到Criteria中
Criterion criterion1= Expression.like("name", "T%") ;
Criterion criterion2= Expression.eq("age", new Integer(21)) ;

criteria=criteria.add(criterion1);
criteria=criteria.add(criterion2);

//执行查询语句,返回查询结果
List result=criteria.list();
2
List result=session.createCriteria(Customer.class) .add(Expression.like("name", "T%").add(Expression.eq("age", new Integer(21)).list();



3 Criteria crit = sess.createCriteria(Cat.class);
crit.setMaxResults(50);
List cats = crit.list();




---------------------------------------------------------------------
对于集合遍历的问题

1 如果集合中是对象,可以如下打印出来,如:

Query query = (Query)session.createQuery("from Customer");
List list = query.list();

for (int i = 0; i < list.size(); i++)
{
Customer c = (Customer)list.get(i);
System.out.println(c.getId()+" "+c.getUsername());
}

2 如果集合中为数组,可以如下显示出来:

Query query = (Query)session.createQuery("select id,username from Customer");
List list = query.list();

for (int i = 0; i < list.size(); i++)
{
Object[] o = (Object[])list.get(i);
System.out.println(o[0]+" "+o[1]);
}




----------------------------------------------------------------------

分页查询

1 采用HQL检索方式

Query query = session.createQuery("from Customer c order by c.name asc");
query.setFirstResult(0);
query.setMaxResults(10);
List result = query.list();

2 采用QBC检索方式

Criteria criteria = session.createCriteria(Customer.class);
criteria.addOrder(Order.asc("name"));
criteria.setFirstResult(0);
criteria.setMaxResults(10);
List result = criteria.list();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值