package org.leno.houseHire.dao;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;
import org.leno.houseHire.action.Condition;
import org.leno.houseHire.dao.House;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
public class HouseDAOImpl extends HibernateDaoSupport implements IHouseDAO {
public void addHouse(House house) {
getHibernateTemplate().save(house);
}
public void editHouse(House house) {
getHibernateTemplate().update(house);
}
@SuppressWarnings("unchecked")
public List<House> findAllHouse(Condition cond, final int start,
final int limit) {
final String title = cond.getTitle();
final int room = cond.getRoom();
final int ting = cond.getTing();
final int areaId = cond.getAreaId();
final int streetId = cond.getStreetId();
final double priceStart = cond.getPriceStart();
final double priceEnd = cond.getPriceEnd();
final String booktime = cond.getBooktime();
final String sort = cond.getSortCond();
// 下一版本换成DetachedCriteria
return (List<House>) getHibernateTemplate().execute(
new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Criteria cr = session.createCriteria(House.class)
.setFirstResult(start).setMaxResults(limit);
if (title != null && !title.trim().equals("")) {
cr.add(Restrictions
.like("title", "%" + title + "%"));
}
if (room != 0) {
cr.add(Restrictions.eq("room", room));
}
if (ting != 0) {
cr.add(Restrictions.eq("ting", ting));
}
if (streetId == 0) {
if (areaId != 0) {
cr.createCriteria("street").createCriteria(
"area").add(
Restrictions.eq("aid", areaId));
}
}
if (streetId != 0) {
cr.createCriteria("street").add(
Restrictions.eq("sid", streetId));
}
if (priceEnd > 0) {
cr.add(Restrictions.between("hireprice",
priceStart, priceEnd));
}
if (booktime != null && !booktime.trim().equals("")) {
String sda = booktime + " " + "00:00:00";
String eda = booktime + " " + "23:59:59";
SimpleDateFormat sdf = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
try {
Date start_date = sdf.parse(sda);
Date end_date = sdf.parse(eda);
cr.add(Restrictions.between("booktime",
start_date, end_date));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (sort != null && sort.equals("desc")) {
cr.addOrder(Order.desc("booktime"));
}
List<House> list = cr.list();
return list;
}
});
}
/**
* 在Hibernate3中,对Criteria又增添了新功能,可以支持分组与统计功能,在Hibernate3中增加了Projections以及ProjectionList类,这两个类对分组与统计功能进行了封装
*/
public long getTotalNums(Condition cond) {
final String title = cond.getTitle();
final int room = cond.getRoom();
final int ting = cond.getTing();
final int areaId = cond.getAreaId();
final int streetId = cond.getStreetId();
final double priceStart = cond.getPriceStart();
final double priceEnd = cond.getPriceEnd();
final String booktime = cond.getBooktime();
return (Integer) getHibernateTemplate().execute(
new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Criteria cr = session.createCriteria(House.class);
if (title != null && !title.trim().equals("")) {
cr.add(Restrictions
.like("title", "%" + title + "%"));
}
if (room != 0) {
cr.add(Restrictions.eq("room", room));
}
if (ting != 0) {
cr.add(Restrictions.eq("ting", ting));
}
if (streetId == 0) {
if (areaId != 0) {
cr.createCriteria("street").createCriteria(
"area").add(
Restrictions.eq("aid", areaId));
}
}
if (streetId != 0) {
cr.createCriteria("street").add(
Restrictions.eq("sid", streetId));
}
if (priceEnd > 0) {
cr.add(Restrictions.between("hireprice",
priceStart, priceEnd));
}
if (booktime != null && !booktime.trim().equals("")) {
String sda = booktime + " " + "00:00:00";
String eda = booktime + " " + "23:59:59";
SimpleDateFormat sdf = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
try {
Date start_date = sdf.parse(sda);
Date end_date = sdf.parse(eda);
cr.add(Restrictions.between("booktime",
start_date, end_date));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// return cr.list().size();
cr.setProjection(Projections.count("hid"));
return cr.uniqueResult();
}
});
}
@SuppressWarnings("unchecked")
public List<House> findAllHouse2(Condition cond, final int start,
final int limit) {
String hql = "select h from House h where 1=1";
String title = cond.getTitle();
int room = cond.getRoom();
int ting = cond.getTing();
int areaId = cond.getAreaId();
int streetId = cond.getStreetId();
double priceStart = cond.getPriceStart();
double priceEnd = cond.getPriceEnd();
String booktime = cond.getBooktime();
String sort = cond.getSortCond();
if (title != null && !title.trim().equals("")) {
hql = hql + " and h.title like '%" + title + "%'";
}
if (room != 0) {
hql = hql + " and h.room=" + room;
}
if (ting != 0) {
hql = hql + " and h.ting=" + ting;
}
if (areaId != 0) {
hql = hql + " and h.street.area.aid=" + areaId;
}
if (streetId != 0) {
hql = hql + " and h.street.sid=" + streetId;
}
if (priceEnd > 0) {
hql = hql + " and h.hireprice between " + priceStart + " and "
+ priceEnd;
}
if (booktime != null && !booktime.trim().equals("")) {
// 用到sqlserver日期转化成字符串的函数
hql = hql + " and convert(char,h.booktime,23)='" + booktime + "'";
}
if (sort != null && sort.equals("desc")) {
hql = hql + " order by h.booktime desc";
}
System.out.println(hql);
final String finalHql = hql;
// Spring的HibernateTemplate提供了Hibernate的完美封装,即通过匿名类实现回调,来保证Session的自动资源管理和事务的管理。
return (List<House>) getHibernateTemplate().execute(
new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createQuery(finalHql)
.setFirstResult(start).setMaxResults(limit);
return query.list();
}
});
}
public long getTotalNums2(Condition cond) {
String hql = "select count(h) from House h where 1=1";
String title = cond.getTitle();
int room = cond.getRoom();
int ting = cond.getTing();
int areaId = cond.getAreaId();
int streetId = cond.getStreetId();
double priceStart = cond.getPriceStart();
double priceEnd = cond.getPriceEnd();
String booktime = cond.getBooktime();
if (title != null && !title.trim().equals("")) {
hql = hql + " and h.title like '%" + title + "%'";
}
if (room != 0) {
hql = hql + " and h.room=" + room;
}
if (ting != 0) {
hql = hql + " and h.ting=" + ting;
}
if (areaId != 0) {
h
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
SSH 房屋租赁 项目源码 (1074个子文件)
ajax.bmp 328KB
ExportExcel.class 11KB
ExportPdf.class 10KB
HouseServiceImpl.class 8KB
HouseDAOImpl.class 8KB
ExportJFreeChart.class 6KB
LoginServiceImpl.class 4KB
LoginDAOImpl.class 4KB
HouseExportAction.class 4KB
HouseDAOImpl$1.class 4KB
HouseDTO.class 4KB
DigitVerifyAction.class 4KB
HouseDAOImpl$2.class 4KB
House.class 3KB
LoginHandlerAction.class 3KB
HouseHandlerAction.class 3KB
LoginAction.class 3KB
HibernateSessionFactory.class 3KB
HouseSearchAction.class 3KB
Condition.class 3KB
LoginSearchAction.class 2KB
PdfParagraph.class 2KB
ImportExcel.class 2KB
Test.class 2KB
HouseSmallDTO.class 2KB
LoginDAOImpl$2.class 2KB
LoginDAOImpl$1.class 2KB
SetCharacterEncodingFilter.class 2KB
Book.class 2KB
MyCollectionUtils.class 2KB
Street.class 2KB
Student.class 2KB
User.class 1KB
HouseDAOImpl$3.class 1KB
CheckLogonTag.class 1KB
LoginOutAction.class 1KB
Area.class 1KB
HouseDAOImpl$6.class 1KB
LoginDTO.class 1KB
HouseDAOImpl$4.class 1KB
LoginSearchForm.class 1KB
SearchForm.class 1KB
TreeAction.class 1KB
HouseDAOImpl$5.class 1KB
ParseDate.class 1KB
IHouseDAO.class 1012B
IHouseService.class 958B
StreetDTO.class 755B
AreaDTO.class 749B
ILoginService.class 728B
StrHelp.class 715B
HouseForm.class 698B
LoginForm.class 698B
ILoginDAO.class 663B
LoginCondition.class 572B
.classpath 3KB
ext-all.css 76KB
xtheme-slickness.css 26KB
xtheme-galdaka.css 18KB
xtheme-slate.css 17KB
xtheme-black.css 16KB
xtheme-olive.css 15KB
xtheme-darkgray.css 15KB
xtheme-purple.css 15KB
xtheme-gray.css 9KB
mail.css 5KB
oa.css 1KB
Thumbs.db 51KB
Thumbs.db 33KB
Thumbs.db 16KB
Thumbs.db 12KB
Thumbs.db 8KB
Thumbs.db 7KB
Thumbs.db 6KB
Thumbs.db 6KB
Thumbs.db 6KB
Thumbs.db 6KB
Thumbs.db 5KB
Thumbs.db 5KB
Thumbs.db 5KB
Thumbs.db 5KB
Thumbs.db 5KB
Thumbs.db 5KB
Thumbs.db 4KB
Thumbs.db 3KB
tip-sprite.gif 61KB
dlg-bg.gif 27KB
header-sprites.gif 7KB
dwr_logo.gif 7KB
tool-sprites.gif 5KB
error-tip-corners.gif 5KB
tool-sprites.gif 4KB
tip-sprite.gif 4KB
error-tip-corners.gif 4KB
tip-sprite.gif 4KB
tool-sprites.gif 4KB
tip-sprite.gif 4KB
tool-sprites.gif 4KB
tip-sprite.gif 4KB
tip-sprite.gif 4KB
共 1074 条
- 1
- 2
- 3
- 4
- 5
- 6
- 11
爱编程的
- 粉丝: 16
- 资源: 22
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页