hibernate中,用HQL查询如何获取数据库中年龄字段最大的那条记录?HQL语句怎么写?
部分代码如下:Sessionsession=null;try{Configurationcfg=newConfiguration().configure();Sessio...
部分代码如下:
Session session=null;
try
{
Configuration cfg = new Configuration().configure();
SessionFactory factory=cfg.buildSessionFactory();//创建会话工厂
session=factory.openSession();//创建会话
session.beginTransaction();//开启事务
Query query=session.createQuery(HQL语句);
List list=query.list();//获取持久化对象集合
for(int i=0;i<list.size();i++)
{
User user=(User)list.get(i);
System.out.println("id:"+user.getId());
System.out.println("姓名:"+user.getName());
System.out.println("年龄:"+user.getAge());
}
session.getTransaction().commit();//提交事务
}
catch(Exception e)
{
session.getTransaction().rollback();//回滚事务
e.printStackTrace();
}
finally
{
session.close();
} 展开
Session session=null;
try
{
Configuration cfg = new Configuration().configure();
SessionFactory factory=cfg.buildSessionFactory();//创建会话工厂
session=factory.openSession();//创建会话
session.beginTransaction();//开启事务
Query query=session.createQuery(HQL语句);
List list=query.list();//获取持久化对象集合
for(int i=0;i<list.size();i++)
{
User user=(User)list.get(i);
System.out.println("id:"+user.getId());
System.out.println("姓名:"+user.getName());
System.out.println("年龄:"+user.getAge());
}
session.getTransaction().commit();//提交事务
}
catch(Exception e)
{
session.getTransaction().rollback();//回滚事务
e.printStackTrace();
}
finally
{
session.close();
} 展开
1个回答
展开全部
可以用子查询:
hql语句
"from User where age=(select max(age) from User) "
相应的sql语句是
SELECT * FROM USER WHERE AGE=(SELECT MAX(AGE) FROM USER);
Hibernate简介:
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询