dedecms织梦内容管理系统    
首页 | java | C/C++ | PHP | 操作系统 | ajax | 脚本编程 | 安全技术 | 本站下载页 | 专题 | QQ群 | 测试中心 | 会员中心 | 积分规则
  当前位置:主页>java>文章内容
Struts2、Spring和Hibernate应用实例(四)
来源: 作者:
四、 建立DAO
DAO访问层负责封装底层的数据访问细节,不仅可以使概念清晰,而且可以提高开发效率。
1、建立DAO的接口类:BooksDao

package com.sterning.books.dao.iface;
import java.util.List;
import com.sterning.books.model.Books;
public interface
BooksDao {
List getAll();
//获得所有记录

List getBooks(int pageSize, int startRow);//获得所有记录
int getRows();//获得总行数
int getRows(String fieldname,String value);//获得总行数
List queryBooks(String fieldname,String value);//根据条件查询
List getBooks(String fieldname,String value,int pageSize, int startRow);//根据条件查询
Books getBook(String bookId);//根据ID获得记录
String getMaxID();//获得最大ID值
void addBook(Books book);//添加记录
void updateBook(Books book);//修改记录
void deleteBook(Books book);//删除记录
}

com.sterning.books.dao.iface.BooksDao.java


2、实现此接口的类文件,BooksMapDao

package com.sterning.books.dao.hibernate;
import java.sql.SQLException;
import java.util.Iterator;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.sterning.books.dao.iface.BooksDao;
import com.sterning.books.model.Books;
import com.sterning.commons.PublicUtil;
/**
* @author cwf
*
*/
public class BooksMapDao extends HibernateDaoSupport implements BooksDao {
public BooksMapDao(){}
/**
* 函数说明:添加信息
* 参数说明:对象
* 返回值:
*/
public void addBook(Books book) {
this.getHibernateTemplate().save(book);
}
/**
* 函数说明:删除信息
* 参数说明: 对象
* 返回值:
*/
public void deleteBook(Books book) {
this.getHibernateTemplate().delete(book);
}
/**
* 函数说明:获得所有的信息
* 参数说明:
* 返回值:信息的集合
*/
public List getAll() {
String sql
="FROM Books ORDER BY bookName";
return this.getHibernateTemplate().find(sql);
}
/**
* 函数说明:获得总行数
* 参数说明:
* 返回值:总行数
*/
public int getRows() {
String sql
="FROM Books ORDER BY bookName";
List list
=this.getHibernateTemplate().find(sql);
return list.size();
}
/**
* 函数说明:获得所有的信息
* 参数说明:
* 返回值:信息的集合
*/
public List getBooks(int pageSize, int startRow) throws HibernateException {
final
int pageSize1=pageSize;
final
int startRow1=startRow;
return this.getHibernateTemplate().executeFind(new HibernateCallback(){
public List doInHibernate(Session session) throws HibernateException, SQLException {
// TODO 自动生成方法存根
Query query=session.createQuery("FROM Books ORDER BY bookName");
query.setFirstResult(startRow1);
query.setMaxResults(pageSize1);
return query.list();
}
});
}
/**
* 函数说明:获得一条的信息
* 参数说明: ID
* 返回值:对象
*/
public Books getBook(String bookId) {
return (Books)this.getHibernateTemplate().get(Books.class,bookId);
}
/**
* 函数说明:获得最大ID
* 参数说明:
* 返回值:最大ID
*/
public String getMaxID() {
String date
=PublicUtil.getStrNowDate();
String sql
="SELECT MAX(bookId)+1 FROM Books ";
String noStr
= null;
List ll
= (List) this.getHibernateTemplate().find(sql);
Iterator itr
= ll.iterator();
if (itr.hasNext()) {
Object noint
= itr.next();
if(noint == null){
noStr
= "1";
}
else{
noStr
= noint.toString();
}
}
if(noStr.length()==1){
noStr
="000"+noStr;
}
else if(noStr.length()==2){
noStr
="00"+noStr;
}
else if(noStr.length()==3){
noStr
="0"+noStr;
}
else{
noStr
=noStr;
}
return noStr;
}
/**
* 函数说明:修改信息
* 参数说明: 对象
* 返回值:
*/
public void updateBook(Books pd) {
this.getHibernateTemplate().update(pd);
}
/**
* 函数说明:查询信息
* 参数说明: 集合
* 返回值:
*/
public List queryBooks(String fieldname,String value) {
System.
out.println("value: "+value);
String sql
="FROM Books where "+fieldname+" like '%"+value+"%'"+"ORDER BY bookName";
return this.getHibernateTemplate().find(sql);
}
/**
* 函数说明:获得总行数
* 参数说明:
* 返回值:总行数
*/
public int getRows(String fieldname,String value) {
String sql
="";
if(fieldname==null||fieldname.equals("")||fieldname==null||fieldname.equals(""))
sql
="FROM Books ORDER BY bookName";
else
sql
="FROM Books where "+fieldname+" like '%"+value+"%'"+"ORDER BY bookName";
List list
=this.getHibernateTemplate().find(sql);
return list.size();
}
/**
* 函数说明:查询信息
* 参数说明: 集合
* 返回值:
*/
public List getBooks(String fieldname,String value,int pageSize, int startRow) {
final
int pageSize1=pageSize;
final
int startRow1=startRow;
final String queryName
=fieldname;
final String queryValue
=value;
String sql
="";
if(queryName==null||queryName.equals("")||queryValue==null||queryValue.equals(""))
sql
="FROM Books ORDER BY bookName";
else
sql
="FROM Books where "+fieldname+" like '%"+value+"%'"+"ORDER BY bookName";
final String sql1
=sql;
return this.getHibernateTemplate().executeFind(new HibernateCallback(){
public List doInHibernate(Session session) throws HibernateException, SQLException {
// TODO 自动生成方法存根
Query query=session.createQuery(sql1);
query.setFirstResult(startRow1);
query.setMaxResults(pageSize1);
return query.list();
}
});
}
}


上一篇:Struts2、Spring和Hibernate应用实例(三)   下一篇:Struts2、Spring和Hibernate应用实例(五)
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论
  热点文章
·java自学路线图
·JSP入门实例教程
·JUnit单元测试(2)
·JUnit单元测试(1)
·什么是Servlet
·用AJAX+J2EE实现网上会议室系统
·浅谈在Java语言中究竟是传值还是
·Java 5.0 多线程编程实践
·Java的文件 读和写
·构造器内部的多态方法的行为
·JSP常用内置对象使用说明
·对于JAVA基础测试中常见的异常问
  相关文章
·Struts2、Spring和Hibernate应用
·Struts2、Spring和Hibernate应用
·Struts2、Spring和Hibernate应用
·计算两个时间戳型的时间差
·Struts2、Spring和Hibernate应用
·Log4j的使用
·Java Clone机制
·汉诺塔java算法整理
·Java中的instanceof运算符
·JSF视频教程
·学习心得:Java为什么支持反射机
·承接项目的一些方案(仅初学者)
  相关信息
copy right @ 百家拳软件项目研究室 2007 辽ICP备07011763