Thomson-Blog ( 学习,学习,再学习;努力,努力,再努力。)
在学习的路上不断成长,成功之路就在脚下。
public List getList(PageBean p, String str[], Object ob2[]) {
  Session session = this.getSession();
  Query q = session.createQuery(p.getListSQL());
  for (int i = 0; i < str.length; i++) {
   q.setParameter(str[i], ob2[i]);
  }
  q.setFirstResult((p.getPage() - 1) * p.getPageSize());
  q.setMaxResults(p.getPageSize());
  return q.list();
 }
<P align=left> public int getTotalCount(PageBean p, String str[], Object ob2[])
   throws Exception {</P>
<P align=left>  List list = getHibernateTemplate().findByNamedParam(
    p.getTotalCountSQL(), str, ob2);
  int count = 0;
  if (list.size() > 0) {
   count = ((Integer) list.get(0)).intvalue();
  }
  return count;
 }
}
这样就定义好了分页的准备工作,下面就是怎样使用了。在<A href="file:///C:/Documents%20and%20Settings/mole/My%20Documents/My%20WebZIP%20Sites/javaresource/www.javaresource.org/spring-framework/spring-framework-23.html"><FONT color=#0240a3>spring</FONT></A>中配置好,上面的借口要注入的地方,这是在<A href="file:///C:/Documents%20and%20Settings/mole/My%20Documents/My%20WebZIP%20Sites/javaresource/www.javaresource.org/spring-framework/spring-framework-23.html"><FONT color=#0240a3>spring</FONT></A>配置文件中目标代码的配置代码:</P>
<P align=left><bean id="paginateProxy"
  class="org.<A href="file:///C:/Documents%20and%20Settings/mole/My%20Documents/My%20WebZIP%20Sites/javaresource/www.javaresource.org/spring-framework/spring-framework-23.html"><FONT color=#0240a3>spring</FONT></A>framework.transaction.interceptor.TransactionProxyFactoryBean">
  <property name="transactionManager">
   <ref bean="transactionManager" />
  </property>
  <property name="target">
   <ref local="paginate" />
  </property>
  <property name="transactionAttributes">
   <props>
    <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
   </props>
  </property>
 </bean></P>
<P align=left>注入的地方:在bookTypeDAO中要调用目标方法</P>
<P align=left><bean id="bookTypeDAO"
  class="com.binghe.<A href="file:///C:/Documents%20and%20Settings/mole/My%20Documents/My%20WebZIP%20Sites/javaresource/www.javaresource.org/spring-framework/spring-framework-23.html"><FONT color=#0240a3>spring</FONT></A>.booktype.BookTypeDAOImp">
  <property name="sessionFactory">
   <ref local="sessionFactory" />
  </property>
  <property name="paginate">
   <ref bean="paginateProxy" />
  </property>
 </bean></P>
<P align=left>在action中得到页面传来的页数和页面显示的记录数:</P>
<P align=left>public ActionForward displayAll(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {
  HttpSession session = request.getSession();
  ActionMessages errors = new ActionMessages();
  UserBean ub = new UserBean();
  if (session.getAttribute(Const<A href="file:///C:/Documents%20and%20Settings/mole/My%20Documents/My%20WebZIP%20Sites/javaresource/www.javaresource.org/ant/ant-57.html"><FONT color=#0240a3>ant</FONT></A>s.SESSION_USER) != null) {
   ub = (UserBean) session.getAttribute(Const<A href="file:///C:/Documents%20and%20Settings/mole/My%20Documents/My%20WebZIP%20Sites/javaresource/www.javaresource.org/ant/ant-57.html"><FONT color=#0240a3>ant</FONT></A>s.SESSION_USER);
  } else {
   errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(
     "system.logon.not.logon"));
   saveMessages(request, errors);
   return mapping.findForward(Const<A href="file:///C:/Documents%20and%20Settings/mole/My%20Documents/My%20WebZIP%20Sites/javaresource/www.javaresource.org/ant/ant-57.html"><FONT color=#0240a3>ant</FONT></A>s.FORWARD_LOGON);
  }
  PageBean page = new PageBean();
  String pagesize = request.getParameter("pagesize");
  String pages = request.getParameter("pages");
  if (pagesize != null) {
   page.setPageSize(Integer.parseInt(pagesize));
  }
  if (pages != null) {
   page.setPage(Integer.parseInt(pages));
  }
  try {
   List bts = bookTypeDAO.findAllBookType(page);
   request.setAttribute(Const<A href="file:///C:/Documents%20and%20Settings/mole/My%20Documents/My%20WebZIP%20Sites/javaresource/www.javaresource.org/ant/ant-57.html"><FONT color=#0240a3>ant</FONT></A>s.KEY_BOOKTYPES, bts);
  } catch (Exception e) {
   e.printStackTrace();
  }
  request.setAttribute("toolsmenu", bookTypeDAO.getPaginate()
    .getToolsMenu(bookTypeDAO.getPageBean()));
  return mapping.findForward(Const<A href="file:///C:/Documents%20and%20Settings/mole/My%20Documents/My%20WebZIP%20Sites/javaresource/www.javaresource.org/ant/ant-57.html"><FONT color=#0240a3>ant</FONT></A>s.FORWARD_SUCCESS);
 }</P>
<P align=left>下面是BookDAO接口代码:</P>
<P align=left>package com.binghe.<A href="file:///C:/Documents%20and%20Settings/mole/My%20Documents/My%20WebZIP%20Sites/javaresource/www.javaresource.org/spring-framework/spring-framework-23.html"><FONT color=#0240a3>spring</FONT></A>.booktype;</P>
<P align=left>import java.io.Serializable;
import java.util.List;</P>
<P align=left>import com.binghe.<A href="file:///C:/Documents%20and%20Settings/mole/My%20Documents/My%20WebZIP%20Sites/javaresource/www.javaresource.org/hibernate/hibernate-22.html"><FONT color=#0240a3>hibernate</FONT></A>.booktype.BookType;
import com.binghe.<A href="file:///C:/Documents%20and%20Settings/mole/My%20Documents/My%20WebZIP%20Sites/javaresource/www.javaresource.org/spring-framework/spring-framework-23.html"><FONT color=#0240a3>spring</FONT></A>.PageBean;
import com.binghe.<A href="file:///C:/Documents%20and%20Settings/mole/My%20Documents/My%20WebZIP%20Sites/javaresource/www.javaresource.org/spring-framework/spring-framework-23.html"><FONT color=#0240a3>spring</FONT></A>.PaginateInterface;</P>
<P align=left>public interface BookTypeDAO extends Serializable {
 public abstract PaginateInterface getPaginate();</P>
<P align=left> public abstract PageBean getPageBean();</P>
<P align=left> public abstract boolean checkBookTypeIsValid(String name) throws Exception;</P>
<P align=left> public abstract void addBookType(BookType bookType) throws Exception;</P>
<P align=left> public abstract void updateBookType(BookType bookType) throws Exception;</P>
<P align=left> public abstract void deleteBookType(Integer id) throws Exception;</P>
<P align=left> public abstract void deleteAllBookType(String ids[]) throws Exception;</P>
<P align=left> public abstract BookType findBookTypeById(Integer id) throws Exception;</P>
<P align=left> public abstract List findAllBookType() throws Exception;</P>
<P align=left> public abstract List findAllBookType(PageBean page) throws Exception;
}
</P>
<P align=left>下面是BookDAOImp中的调用代码:</P>
<P align=left>package com.binghe.<A href="file:///C:/Documents%20and%20Settings/mole/My%20Documents/My%20WebZIP%20Sites/javaresource/www.javaresource.org/spring-framework/spring-framework-23.html"><FONT color=#0240a3>spring</FONT></A>.booktype;</P>
<P align=left>import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;</P>
<P align=left>import org.<A href="file:///C:/Documents%20and%20Settings/mole/My%20Documents/My%20WebZIP%20Sites/javaresource/www.javaresource.org/hibernate/hibernate-22.html"><FONT color=#0240a3>hibernate</FONT></A>.Query;
import org.<A href="file:///C:/Documents%20and%20Settings/mole/My%20Documents/My%20WebZIP%20Sites/javaresource/www.javaresource.org/hibernate/hibernate-22.html"><FONT color=#0240a3>hibernate</FONT></A>.Session;
import org.<A href="file:///C:/Documents%20and%20Settings/mole/My%20Documents/My%20WebZIP%20Sites/javaresource/www.javaresource.org/spring-framework/spring-framework-23.html"><FONT color=#0240a3>spring</FONT></A>framework.orm.<A href="file:///C:/Documents%20and%20Settings/mole/My%20Documents/My%20WebZIP%20Sites/javaresource/www.javaresource.org/hibernate/hibernate-22.html"><FONT color=#0240a3>hibernate</FONT></A>3.support.HibernateDaoSupport;</P>
<P align=left>import com.binghe.<A href="file:///C:/Documents%20and%20Settings/mole/My%20Documents/My%20WebZIP%20Sites/javaresource/www.javaresource.org/hibernate/hibernate-22.html"><FONT color=#0240a3>hibernate</FONT></A>.booktype.BookType;
import com.binghe.utils.DeptBean;
import com.binghe.<A href="file:///C:/Documents%20and%20Settings/mole/My%20Documents/My%20WebZIP%20Sites/javaresource/www.javaresource.org/spring-framework/spring-framework-23.html"><FONT color=#0240a3>spring</FONT></A>.PageBean;
import com.binghe.<A href="file:///C:/Documents%20and%20Settings/mole/My%20Documents/My%20WebZIP%20Sites/javaresource/www.javaresource.org/spring-framework/spring-framework-23.html"><FONT color=#0240a3>spring</FONT></A>.Paginate;
import com.binghe.<A href="file:///C:/Documents%20and%20Settings/mole/My%20Documents/My%20WebZIP%20Sites/javaresource/www.javaresource.org/spring-framework/spring-framework-23.html"><FONT color=#0240a3>spring</FONT></A>.PaginateInterface;
import com.binghe.utils.UserBean;</P>
<P align=left>public class BookTypeDAOImp extends HibernateDaoSupport implements BookTypeDAO {
 private PaginateInterface paginate;</P>
<P align=left> private PageBean pageBean = new PageBean();</P>
<P align=left> public PageBean getPageBean() {
  return pageBean;
 }</P>
<P align=left> public void setPageBean(PageBean pageBean) {
  this.pageBean = pageBean;
 }</P>
<P align=left> public PaginateInterface getPaginate() {
  return paginate;
 }</P>
<P align=left> public void setPaginate(PaginateInterface paginate) {
  this.paginate = paginate;
 }</P>
<P align=left> public void addBookType(BookType bookType) throws Exception {
  this.getHibernateTemplate().save(bookType);</P>
<P align=left> }</P>
<P align=left> public boolean checkBookTypeIsValid(String name) throws Exception {
  String names[] = new String[1];
  names[0] = name;
  boolean valid = false;
  List list = this.getHibernateTemplate().find(
    "select b.id from BookType b where b.name=?", names);
  if (list.size() > 0) {
   valid = true;
  }
  return valid;</P>
<P align=left> }</P>
<P align=left> public void updateBookType(BookType bookType) throws Exception {
  this.getHibernateTemplate().update(bookType);</P>
<P align=left> }</P>
<P align=left> public BookType findBookTypeById(Integer id) throws Exception {</P>
<P align=left>  String sql = "select b,u.userName,d.deptName "
    + " from BookType b,UserBean u,DeptBean d "
    + " where b.userId=u.OID and u.deptOID=d.OID and b.id=:id";
  List list = this.getHibernateTemplate().findByNamedParam(sql, "id", id);
  Iterator it = list.iterator();
  BookType b = null;
  UserBean u = new UserBean();
  DeptBean d = new DeptBean();
  if (it.hasNext()) {
   Object o[] = (Object[]) it.next();
   b = (BookType) o[0];
   u.setUserName((String) o[1]);
   d.setDeptName((String) o[2]);
   u.setDept(d);
   b.setUser(u);
  }
  return b;
 }</P>
<P align=left> public List findAllBookType() throws Exception {
  List bookTypes = new ArrayList();</P>
<P align=left>  String sql = "select b,u.userName,d.deptName "
    + " from BookType b,UserBean u,DeptBean d "
    + " where b.userId=u.OID and u.deptOID=d.OID";
  List list = this.getHibernateTemplate().find(sql);
  Iterator it = list.iterator();
  while (it.hasNext()) {
   Object o[] = (Object[]) it.next();
   BookType b = null;
   UserBean u = new UserBean();
   DeptBean d = new DeptBean();
   b = (BookType) o[0];
   u.setUserName((String) o[1]);
   d.setDeptName((String) o[2]);
   u.setDept(d);
   b.setUser(u);
   bookTypes.add(b);
  }
  if (bookTypes.size() > 0)
   return bookTypes;
  return null;
 }</P>
<P align=left> public List findAllBookType(PageBean p) throws Exception {
  List bookTypes = new ArrayList();</P>
<P align=left>  String sql = "select b,u.userName,d.deptName "
    + " from BookType b,UserBean u,DeptBean d "
    + " where b.userId=u.OID and u.deptOID=d.OID";</P>
<P align=left>  String sql2 = "select count(*) from BookType";
  p.setListSQL(sql);
  p.setTotalCountSQL(sql2);
  p.setCount(this.getPaginate().getTotalCount(p));
  this.setPageBean(p);
  List list = this.getPaginate().getList(p);
  Iterator it = list.iterator();
  while (it.hasNext()) {
   Object o[] = (Object[]) it.next();
   BookType b = null;
   UserBean u = new UserBean();
   DeptBean d = new DeptBean();
   b = (BookType) o[0];
   u.setUserName((String) o[1]);
   d.setDeptName((String) o[2]);
   u.setDept(d);
   b.setUser(u);
   bookTypes.add(b);
  }
  if (bookTypes.size() > 0)
   return bookTypes;
  return null;
 }</P>
<P align=left> public void deleteBookType(Integer id) throws Exception {
  BookType bookType = (BookType) this.getHibernateTemplate().load(
    BookType.class, id);
  getHibernateTemplate().delete(bookType);
 }</P>
<P align=left> public void deleteAllBookType(String ids[]) throws Exception {
  List list = new ArrayList();
  for (int i = 0; i < ids.length; i++) {
   BookType bookType = (BookType) this.getHibernateTemplate().load(
     BookType.class, new Integer(ids[i]));
   list.add(i, bookType);
  }
  getHibernateTemplate().deleteAll(list);
 }</P>
<P align=left>}</P>
<P align=left>这是我写的一个项目中抽取的代码,上面全是代码形式没有文字说明,如果有经验的话我觉得会看懂的,看不懂的话可以发表评论。</P>
posted on 2008-08-21 10:37  Thomson-Blog  阅读(448)  评论(0)    收藏  举报