首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Eclipse开发 >

小弟我用struts+hibernate,生成的DAO中的哪个方法能实现查询,谢了

2012-03-09 
我用struts+hibernate,生成的DAO中的哪个方法能实现查询,谢了!packageorg.testimportjava.util.Listimpo

我用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> ......

热点排行