package dao;
import entity.Article;
import factory.HibernateSessionFactory;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
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.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.Example;
/**
* Data access object (DAO) for domain model class Article.
*
* @see entity.Article
* @author MyEclipse Persistence Tools
*/
public class ArticleDAO extends BaseHibernateDAO {
private static final Log log = LogFactory.getLog(ArticleDAO.class);
private static final int n = 3;
// property constants
public static final String TITLE = "title";
public static final String TYPE = "type";
public static final String CONTENT = "content";
public static final String WRITER = "writer";
public static final String WRITE_DATE = "writeDate";
public void save(Article transientInstance) {
log.debug("saving Article instance");
try {
getSession().save(transientInstance);
log.debug("save successful");
} catch (RuntimeException re) {
log.error("save failed", re);
throw re;
}
}
public void delete(Article persistentInstance) {
log.debug("deleting Article instance");
try {
getSession().delete(persistentInstance);
log.debug("delete successful");
} catch (RuntimeException re) {
log.error("delete failed", re);
throw re;
}
}
public Article findById(java.lang.Integer id) {
log.debug("getting Article instance with id: " + id);
try {
Article instance = (Article) getSession().get("entity.Article", id);
return instance;
} catch (RuntimeException re) {
log.error("get failed", re);
throw re;
}
}
public List findByExample(Article instance) {
log.debug("finding Article instance by example");
try {
List results = getSession().createCriteria("entity.Article").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 Article instance with property: " + propertyName
+ ", value: " + value);
try {
String queryString = "from Article as model where model."
+ propertyName + "= ? order by articleId desc";
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;
}
}
/*
* 根据用户名和typeId查询相关资料的集合
*/
public List findByTypeIdAndUserName(int typeId,String userName ) {
try {
String queryString = "select top "+n+" * from Article as model where model.type=? and model.writer=?";
Query queryObject = getSession().createQuery(queryString);
queryObject.setParameter(0, typeId);
queryObject.setParameter(1, userName);
return queryObject.list();
} catch (RuntimeException re) {
log.error("find by property name failed", re);
throw re;
}
}
/*public List findByTypeIdOrUserNameOrTitle(int page ,int typeId,String title,String writer) {
try {
String queryString = "select top "+n+" * from Article where type=? and title like ? ";
Query queryObject = getSession().createQuery(queryString);
queryObject.setParameter(0, typeId);
queryObject.setParameter(1, "%"+title+"%");
queryObject.setParameter(2, "%"+writer+"%");
queryObject.setParameter(3, (page-1)*n);
return queryObject.list();
} catch (RuntimeException re) {
log.error("find by property name failed", re);
throw re;
}
}*/
/*
* 根据用户名和typeId查询相关资料的集合
*/
public List findByTypeIdOrUserNameOrTitle(int page ,int typeId,String title,String writer) {
System.out.println("aaa"+page+"bbb"+typeId+"ccc"+title+"ddd"+writer);
List articleList=new ArrayList();
Session session=HibernateSessionFactory.getSession();
Transaction tx=session.beginTransaction();
Connection conn=null;
String sql="select top "+n+" * from Article where type=? and title like ? and writer like ? " +
"and articleId not in (select top "+(page-1)*n+" articleId from article " +
"where type=? and title like ? and writer like ? order by articleId)";
PreparedStatement Pstmt;
ResultSet rs=null;
try {
conn=session.connection();
Pstmt = conn.prepareStatement(sql);
Pstmt.setInt(1, typeId);
Pstmt.setString(2, "%"+title+"%");
Pstmt.setString(3, "%"+writer+"%");
Pstmt.setInt(4, typeId);
Pstmt.setString(5, "%"+title+"%");
Pstmt.setString(6, "%"+writer+"%");
rs = Pstmt.executeQuery();
while(rs.next()){
Article article = new Article();//书对象
//设置书的信息
article.setArticleId(rs.getInt(1));
article.setTitle(rs.getString(2));
article.setType(rs.getInt(3));
article.setContent(rs.getString(4));
article.setWriter(rs.getString(5));
article.setWriteDate(rs.getString(6));
articleList.add(article);
}
tx.commit();
} catch (SQLException e) {
if(tx!=null){
tx.rollback();
}
e.printStackTrace();
}finally{
HibernateSessionFactory.closeSession();
}
return articleList;
}
/*
* 根据用户名和typeId查询相关资料的集合
*/
public List findByUserNameOrTitle( int page,String title,String writer) {
List articleList=new ArrayList();
Session session=HibernateSessionFactory.getSession();
Transaction tx=session.beginTransaction();
Connection conn=null;
String sql="select top "+n+" * from Article where title like ? and writer like ? " +
"and articleId not in (select top "+(page-1)*n+" articleId from article " +
"where title like ? and writer like ? )";
PreparedStatement Pstmt;
ResultSet rs=null;
try {
conn=session.connection();
Pstmt = conn.prepareStatement(sql);
Pstmt.setString(1, "%"+title+"%");
Pstmt.setString(2, "%"+writer+"%");
Pstmt.setString(3, "%"+title+"%");
Pstmt.setString(4, "%"+writer+"%");
rs = Pstmt.executeQuery();
while(rs.next()){
Article article = new Article();//书对象
//设置书的信息
article.setArticleId(rs.getInt(1));
article.setTitle(rs.getString(2));
article.setType(rs.getInt(3));
article.setContent(rs.getString(4));
article.setWriter(rs.getString(5));
article.setWriteDate(rs.getString(6));
articleList.add(article);
}
tx.commit();
} catch (SQLException e) {
if(tx!=null){
tx.rollback();
}
e.printStackTrace();
}finally{
HibernateSessionFactory.closeSession();
}
return articleList;
}
/*public List findByUserNameOrTitle( int page,String title,String writer) {
try {
String queryString = "from Article where title like ? and writer like ?";
Query queryObject = getSession().createQuery(queryString);
queryObject.setParameter(0, "%"+title+"%");
queryObject.setParameter(1, "%"+writer+"%");
return queryObject.list();
} catch (RuntimeException re) {
log.error("find by property name failed", re);
throw re;
}
}*/
//返回总页数
public int getPageCount(int page,int typeId,String title,String writer){
int pagecount = 0;//总页数
Session session=HibernateSessionFactory.getSession();
没有合适的资源?快使用搜索试试~ 我知道了~
e家园项目源代码使用hibernate编写
共137个文件
gif:40个
class:22个
java:22个
5星 · 超过95%的资源 需积分: 10 50 下载量 42 浏览量
2009-10-28
20:39:06
上传
评论
收藏 1.17MB RAR 举报
温馨提示
使用hibernate编写,使用了分页技术,采用了JavaScript脚码验证。
资源推荐
资源详情
资源评论
收起资源包目录
e家园项目源代码使用hibernate编写 (137个子文件)
ArticleDAO.class 10KB
UsersDAO.class 6KB
TypesDAO.class 5KB
SearchServlet.class 4KB
LoginServlet.class 2KB
HibernateSessionFactory.class 2KB
SelectArticleServlet.class 2KB
RegisterServlet.class 2KB
Article.class 2KB
UsersBiz.class 2KB
Users.class 2KB
ArticleBiz.class 2KB
DetailArticleServlet.class 2KB
LoginFilter.class 2KB
SessionListener.class 2KB
InvalidateServlet.class 1KB
EncodingFilter.class 1KB
URLBiz.class 1KB
Types.class 1KB
PageBean.class 934B
BaseHibernateDAO.class 458B
IBaseHibernateDAO.class 168B
.classpath 537B
css.css 2KB
Thumbs.db 162KB
banner.gif 30KB
index_11.gif 8KB
index_1.gif 8KB
logo.gif 4KB
left02.gif 4KB
left04.gif 4KB
left03.gif 4KB
bg06.gif 4KB
index_4.gif 3KB
index_10.gif 3KB
cen06.gif 3KB
cen05.gif 2KB
bg05.gif 810B
button02.gif 664B
button03.gif 660B
button01.gif 652B
line02.gif 393B
bg09.gif 283B
bg03.gif 275B
index_6.gif 169B
isms.gif 162B
bg10.gif 155B
dot02.gif 153B
index_5.gif 138B
index_9.gif 130B
bg01.gif 128B
iboy.gif 125B
igirl.gif 124B
cen04.gif 121B
cen02.gif 121B
line01.gif 114B
bg13.gif 109B
index_3.gif 107B
bg02.gif 96B
bg08.gif 81B
bg07.gif 79B
bg04.gif 78B
dot01.gif 76B
bg11.gif 66B
bg12.gif 66B
top.html 2KB
sqljdbc.jar 247KB
ArticleDAO.java 11KB
UsersDAO.java 5KB
SearchServlet.java 4KB
TypesDAO.java 4KB
HibernateSessionFactory.java 3KB
SelectArticleServlet.java 3KB
LoginServlet.java 3KB
RegisterServlet.java 2KB
InvalidateServlet.java 2KB
DetailArticleServlet.java 2KB
Article.java 2KB
Users.java 2KB
UsersBiz.java 2KB
LoginFilter.java 1KB
ArticleBiz.java 1KB
EncodingFilter.java 1KB
Types.java 775B
SessionListener.java 750B
PageBean.java 692B
URLBiz.java 601B
BaseHibernateDAO.java 341B
IBaseHibernateDAO.java 214B
logo.jpg 6KB
cen02~.jpg 4KB
cen01~.jpg 4KB
cen01.jpg 3KB
cen04~.jpg 3KB
cen02.jpg 3KB
cen03~.jpg 3KB
cen04.jpg 3KB
cen03.jpg 3KB
daohan_5.jpg 2KB
daohan_4.jpg 2KB
共 137 条
- 1
- 2
资源评论
- GoodMiss子轩2014-04-22这个项目对我很有帮助
- 夜幕思年华2014-04-30很全很好用 非常感谢
qazedcrfv
- 粉丝: 27
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 《CKA/CKAD应试指南/从docker到kubernetes 完全攻略》学习笔记 第1章docker基础(1.1-1.4)
- 基于python实现的水下压缩空气储能互补系统建模仿真与经济效益分析+源代码+论文
- 华中科技大学-自然语言处理实验,Bi-LSTM+CRF的中文分词框架,并且利用基于深度学习的方法进行中文命名实体识别++源码报告
- 基于动态罚函数的铁路车流分配与径路优化模型python源码
- 鱼群算法求解组环问题python源码+文档说明
- 基于决策优化的多波束测深测线规划模型MATLAB代码
- 课程设计-基于python实现的多目标优化算法求解带时间窗的车辆路径规划问题+源代码+文档说明+界面截图+pptx
- 基于通信信号与通信系统的MATLAB仿真源码-课程设计
- 嵌入式-信号机制(概念,发送,定时,捕捉,SIGCHLD 信号实现回收子进程)
- c语言管理系统大一大二笔记
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功