我用struts+hibernate,生成的DAO中的哪个方法能实现查询,谢了!
package org.test;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.LockMode;
import org.hibernate.Query;
import org.hibernate.Transaction;
import org.hibernate.criterion.Example;
/**
* Data access object (DAO) for domain model class User.
* @see org.test.User
* @author MyEclipse - Hibernate Tools
*/
public class UserDAO extends BaseHibernateDAO {
private static final Log log = LogFactory.getLog(UserDAO.class);
//property constants
public static final String NAME = "name ";
public static final String PASSWORD = "password ";
public void save(User transientInstance) {
log.debug( "saving User instance ");
try {
Transaction tx=getSession().beginTransaction();
getSession().save(transientInstance);
tx.commit();
log.debug( "save successful ");
} catch (RuntimeException re) {
log.error( "save failed ", re);
throw re;
}
}
public void delete(User persistentInstance) {
log.debug( "deleting User instance ");
try {
getSession().delete(persistentInstance);
log.debug( "delete successful ");
} catch (RuntimeException re) {
log.error( "delete failed ", re);
throw re;
}
}
public User findById( java.lang.Integer id) {
log.debug( "getting User instance with id: " + id);
try {
User instance = (User) getSession()
.get( "org.test.User ", id);
return instance;
} catch (RuntimeException re) {
log.error( "get failed ", re);
throw re;
}
}
public List findByExample(User instance) {
log.debug( "finding User instance by example ");
try {
List results = getSession()
.createCriteria( "org.test.User ")
.add(Example.create(instance))
.list();
log.debug( "find by example successful, result size: " + results.size());
return results;
} catch (RuntimeException re) {
log.error( "find by example failed ", re);
throw re;
}
}
public List findByProperty(String propertyName, Object value) {
log.debug( "finding User instance with property: " + propertyName
+ ", value: " + value);
try {
String queryString = "from User as model where model. "
+ propertyName + "= ? ";
Query queryObject = getSession().createQuery(queryString);
queryObject.setParameter(0, value);
return queryObject.list();
} catch (RuntimeException re) {
log.error( "find by property name failed ", re);
throw re;
}
}
public List findByName(Object name) {
return findByProperty(NAME, name);
}
public List findByPassword(Object password) {
return findByProperty(PASSWORD, password);
}
public User merge(User detachedInstance) {
log.debug( "merging User instance ");
try {
User result = (User) getSession()
.merge(detachedInstance);
log.debug( "merge successful ");
return result;
} catch (RuntimeException re) {
log.error( "merge failed ", re);
throw re;
}
}
public void attachDirty(User instance) {
log.debug( "attaching dirty User instance ");
try {
getSession().saveOrUpdate(instance);
log.debug( "attach successful ");
} catch (RuntimeException re) {
log.error( "attach failed ", re);
throw re;
}
}
public void attachClean(User instance) {
log.debug( "attaching clean User instance ");
try {
getSession().lock(instance, LockMode.NONE);
log.debug( "attach successful ");
} catch (RuntimeException re) {
log.error( "attach failed ", re);
throw re;
}
}
}
[解决办法]
public List findByExample(User instance) {
log.debug( "finding User instance by example ");
try {
List results = getSession()
.createCriteria( "org.test.User ")
.add(Example.create(instance))
.list();
log.debug( "find by example successful, result size: " + results.size());
return results;
} catch (RuntimeException re) {
log.error( "find by example failed ", re);
throw re;
}
}
public List findByProperty(String propertyName, Object value) {
log.debug( "finding User instance with property: " + propertyName
+ ", value: " + value);
try {
String queryString = "from User as model where model. "
+ propertyName + "= ? ";
Query queryObject = getSession().createQuery(queryString);
queryObject.setParameter(0, value);
return queryObject.list();
} catch (RuntimeException re) {
log.error( "find by property name failed ", re);
throw re;
}
}
public List findByName(Object name) {
return findByProperty(NAME, name);
}
public List findByPassword(Object password) {
return findByProperty(PASSWORD, password);
}
这些都能查询,看你的要求是什么样了?
[解决办法]
在页面中调用相应的方法就可以了,如:
<table>
<%
ArrayList <UserBean> users=(ArrayList <UserBean> )UserDaoImp.getInstance().getAllUser;
for(UserBean user:users){
%>
<tr>
<td> 姓名 </td>
<td> 性别 </td>
<td> 年龄 </td>
<td> 地址 </td>
</tr>
<tr>
<td> <%=user.getUname()%> </td>
<td> <%=user.getGender()%> </td>
<td> <%=user.getAge()%> </td>
<td> <%=user.getAddress()%> </td>
</tr> ......