使用hql语句怎样实现多条件查询

页面有三个条件查询文本框,分别按姓名,年龄,性别查询(条件可选填)查询出来的结果要用list保存,因为要在页面循环显示出查询结果。请问下这条hql语句该怎么写?是hql语... 页面有三个条件查询文本框,分别按姓名,年龄,性别查询(条件可选填)
查询出来的结果要用list保存,因为要在页面循环显示出查询结果。
请问下这条hql语句该怎么写?
是hql语句,不是sql语句。
展开
 我来答
kkk41jin
2011-01-29
知道答主
回答量:4
采纳率:0%
帮助的人:0
展开全部
这里只写了DAO和业务逻辑组件、ACTION的具体实现类,PO和和接口自己应该会写吧,HQL采用的是结合SQL的那种写法,增删改查全在里面了,修改下马上就能跑了,不清楚再问,我详细解答,因为这个是我第一给回答问题,分给我吧。呵呵

package dao.impl;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import pojo.User;

public class UserDaoImpl extends HibernateDaoSupport implements UserDao{
//根据标识属性加载User实例
public User get(String sysid)
{
return (User)getHibernateTemplate().get(User.class, sysid);
}
//持久化指定的User实例
public String save(User user)
{
return (String)getHibernateTemplate().save(user);
}
public void update(User user)
{
getHibernateTemplate().update(user);
}
public void delete(User user)
{
getHibernateTemplate().delete(user);
}
public void delete (String sysid)
{
getHibernateTemplate().delete(get(sysid));
}

public List<User> findAll(String hsql) {
Session session = getHibernateTemplate().getSessionFactory().openSession();
Query query = session.createQuery(hsql);
query.setFirstResult(0);
query.setMaxResults(10);
List<User> list = (List<User>) query.list();
session.close();
return list;

}
public List<User> findUserByRequest(User user) {
// TODO Auto-generated method stub
return null;
}

}

package service.impl;
import java.util.List;

import pojo.User;
import dao.impl.UserDao;
public class UserServiceImpl implements UserService
{

private UserDao userDao;

public UserDao getUserDao() {
return userDao;
}

public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}

public User save(User user) {
userDao.save(user);
return user;
}

public User delete(String sysid) {
userDao.delete(sysid);
return userDao.get(sysid);
}

public List<User> findAllUser(User user) {
String hsql="from User";
return userDao.findAll(hsql);
}

public User update(User user) {
userDao.update(user);
return user;
}

public List<User> findUserByRequest(User user) {
String hsql="from User ";
String where = " where 1=1";
if (user.getSysid()!=null && !"".equals(user.getSysid())) {
where+=" and sysid='"+user.getSysid()+"'";
}
if(null!=user.getName() && !"".equals(user.getName())){
where+=" and name='"+user.getName()+"'";
}
hsql+=where;
return userDao.findAll(hsql);
}

public User delete(User user) {
userDao.delete(user);
return user;
}

}

//ACTION
package action;

import java.util.List;

import org.apache.struts2.ServletActionContext;

import pojo.User;
import service.impl.UserService;

import com.opensymphony.xwork2.ActionSupport;

public class UserAction extends ActionSupport{

private User user;
private UserService userServer;

public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public UserService getUserServer() {
return userServer;
}
public void setUserServer(UserService userServer) {
this.userServer = userServer;
}

@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
return findAll();
}

// public String list(){
public String findAll(){
List<User> list = userServer.findAllUser(user);
ServletActionContext.getRequest().setAttribute("list", list);
return "list";
}
public String findUserByRequest(){
List<User> list = userServer.findUserByRequest(user);
ServletActionContext.getRequest().setAttribute("list", list);
return "list";
}
public String add()
{
return "add";
}
public String addSure()
{
userServer.save(user);
return "list";
}
public String deleteBySysid()
{
userServer.delete(user);
return "list";
}

public String showUpdate() {

List<User> list = userServer.findUserByRequest(user);
user = list.get(0);
ServletActionContext.getRequest().setAttribute("list", list);
return "update";
}

public String updateSure() {
userServer.update(user);
return "list";
}
}
198901245631
2015-08-09 · TA获得超过3.5万个赞
知道大有可为答主
回答量:9037
采纳率:92%
帮助的人:1689万
展开全部
可以直接通过HQL语言,通过java对象的形式来实现数据库多条件查询。
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
List result=session.createQuery("from Classes as a where a.classno
like " '%"+OId+"%'").list();
[sql] view plaincopyprint?
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
List result=session.createQuery("from Classes as a where a.classno like " '%"+OId+"%'").list();
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
List result=session.createQuery("from Classes as a where a.classno like " '%"+OId+"%'").list();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lnq96466
2011-01-19 · TA获得超过1009个赞
知道小有建树答主
回答量:1193
采纳率:50%
帮助的人:1033万
展开全部
username=Ext.getCmp('nameid').getValue();
age=Ext.getCmp('ageid').getValue();
query="from 表名 where 1=1";
if(name!=''&&name!=null){
query=query+'and name='+username;
}
if(age!=''&&age!=null){
query=query+'and age='+age;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
asuan3000
2011-01-19 · TA获得超过2930个赞
知道小有建树答主
回答量:1056
采纳率:0%
帮助的人:434万
展开全部
hql语句??
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式