JavaWeb项目开发案例精粹-第4章博客网站系统-003Dao层
1.
package com.sanqing.dao; import java.util.List; import com.sanqing.fenye.Page;
import com.sanqing.po.Article; public interface ArticleDAO {
//定义一个add方法,用来保存博客文章
public void add(Article article); //定义一个queryUserAll,用来取出用户的所有文章
public List<Article> queryUserAll(String username); //获得用户文章总记录数
public int queryUserAllCount(String username); //按分页信息查询用户的记录
public List<Article> queryByPage(String username,Page page); //获得所有文章的总记录数
public int queryAllCount(); //按分页信息查询记录
public List<Article> queryAllByPage(Page page); //按ID查询文章
public Article queryById(int id);
}
2.
package com.sanqing.dao; import java.sql.SQLException;
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.sanqing.fenye.Page;
import com.sanqing.po.Article; public class ArticleDAOImpl extends HibernateDaoSupport implements ArticleDAO { //实现add方法
public void add(Article article) {
this.getHibernateTemplate().saveOrUpdate(article);
} public List<Article> queryUserAll(String username) {
List find = this.getHibernateTemplate().find("select art from Article art where art.username = ?", username);
List<Article> list = find;
return list;
} public int queryUserAllCount(String username) {
List find = this.getHibernateTemplate().find("select count(*) from Article art where art.username = ?",username);
return ((Long)find.get(0)).intValue();
} public List<Article> queryByPage(final String username, final Page page) {
return this.getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createQuery("select art from Article art where art.username = ?");
//设置参数
query.setParameter(0, username);
//设置每页显示多少个,设置多大结果。
query.setMaxResults(page.getEveryPage());
//设置起点
query.setFirstResult(page.getBeginIndex());
return query.list();
} });
} public List<Article> queryAllByPage(final Page page) {
return this.getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createQuery("select art from Article art order by art.date desc");
//设置每页显示多少个,设置多大结果。
query.setMaxResults(page.getEveryPage());
//设置起点
query.setFirstResult(page.getBeginIndex());
return query.list();
} });
} public int queryAllCount() {
List find = this.getHibernateTemplate().find("select count(*) from Article art");
return ((Long)find.get(0)).intValue();
} public Article queryById(int id) {
List find = this.getHibernateTemplate().find("select art from Article art where art.id = ?", id);
return (Article) find.get(0);
} }
3.
package com.sanqing.dao; import com.sanqing.po.BlogInfo; public interface BlogInfoDAO {
//设置个性化内容
public void save(BlogInfo info);
//获得
public BlogInfo get(String username);
}
4.
package com.sanqing.dao; import java.util.List; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import com.sanqing.po.BlogInfo; public class BlogInfoDAOImpl extends HibernateDaoSupport implements BlogInfoDAO{ public BlogInfo get(String username) {
List list = this.getHibernateTemplate().find("select bloginfo from BlogInfo bloginfo where bloginfo.username=?", username);
if(list.size() == 0) {
return null;
} else {
return (BlogInfo) list.get(0);
}
} public void save(BlogInfo info) {
this.getHibernateTemplate().saveOrUpdate(info);
} }
5.
package com.sanqing.dao; import java.util.List; import com.sanqing.fenye.Page;
import com.sanqing.po.Critique; public interface CritiqueDAO {
//添加评论
public void addCritique(Critique critique); //获得指定文章的评论数
public int queryCritiqueCount(int AId); //根据Page来查询指定文章的评论
public List<Critique> queryByPage(int AId,Page page);
}
6.
package com.sanqing.dao; import java.sql.SQLException;
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.sanqing.fenye.Page;
import com.sanqing.po.Critique; public class CritiqueDAOImpl extends HibernateDaoSupport implements CritiqueDAO { public void addCritique(Critique critique) {
this.getHibernateTemplate().save(critique);
} public List<Critique> queryByPage(final int AId, final Page page) {
return this.getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createQuery("select cri from Critique cri where cri.AId = ?");
query.setParameter(0, AId);
//设置每页显示多少个,设置多大结果。
query.setMaxResults(page.getEveryPage());
//设置起点
query.setFirstResult(page.getBeginIndex());
return query.list();
} });
} public int queryCritiqueCount(int AId) {
List find = this.getHibernateTemplate().find("select count(*) from Critique cri where cri.AId = ?",AId);
return ((Long)find.get(0)).intValue();
} }
7.
package com.sanqing.dao; import java.util.Date;
import java.util.List; import com.sanqing.po.Dianjiliang; public interface DianjiliangDAO { //返回该文章,该IP,该时间的访问记录
public List queryByAId(int AId,String IP,Date time); //添加访问记录
public void addJilu(Dianjiliang dianjiliang);
}
8.
package com.sanqing.dao; import java.sql.SQLException;
import java.util.Date;
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.sanqing.po.Dianjiliang; public class DianjiliangDAOImpl extends HibernateDaoSupport implements
DianjiliangDAO { public void addJilu(Dianjiliang dianjiliang) {
this.getHibernateTemplate().save(dianjiliang);
} public List queryByAId(final int AId, final String IP, final Date time) {
return this.getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createQuery("select djl from Dianjiliang djl where djl.AId = ? and djl.ip = ? and djl.time = ?");
//设置参数
query.setParameter(0, AId);
query.setParameter(1, IP);
query.setParameter(2, time);
return query.list();
} });
} }
9.
package com.sanqing.dao; import java.util.List; import com.sanqing.po.User; public interface UserDAO {
//添加用户
public void add(User user); //删除用户
public void delete(User user); //更新用户
public void update(User user); //查询所有用户
public List queryAll(); //按id查询用户
public User queryByID(String username);
}
10.
package com.sanqing.dao; import java.util.List; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import com.sanqing.po.User; public class UserDAOImpl extends HibernateDaoSupport implements UserDAO { public void add(User user) {
this.getHibernateTemplate().save(user);
} public void delete(User user) { } public List queryAll() {
return null;
} public User queryByID(String username) {
List list = this.getHibernateTemplate().find("select user from User user where user.username = '" + username + "'"); if(list.size() == 0) {
return null;
} else {
return (User)list.get(0);
}
} public void update(User user) { } }
JavaWeb项目开发案例精粹-第4章博客网站系统-003Dao层的更多相关文章
- JavaWeb项目开发案例精粹-第4章博客网站系统-006View层
1.showAllArticle.jsp <%@ page language="java" contentType="text/html; charset=gb23 ...
- JavaWeb项目开发案例精粹-第4章博客网站系统-005action层
1. package com.sanqing.action; import java.util.Date; import java.util.Map; import com.opensymphony. ...
- JavaWeb项目开发案例精粹-第4章博客网站系统-004Service层
1. package com.sanqing.service; import java.util.List; import com.sanqing.fenye.Page; import com.san ...
- JavaWeb项目开发案例精粹-第4章博客网站系统-002辅助类及配置文件
1. <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5&qu ...
- JavaWeb项目开发案例精粹-第4章博客网站系统-001设计
1. 2. 3. # MySQL-Front 5.0 (Build 1.0) /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE */; /*!40101 SET SQL_MO ...
- JavaWeb项目开发案例精粹-第6章报价管理系统-05Action层
0. <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC &quo ...
- JavaWeb项目开发案例精粹-第6章报价管理系统-002辅助类及配置文件
1. <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www ...
- JavaWeb项目开发案例精粹-第3章在线考试系统-007View层
0.login.jsp <%@ page language="java" import="java.util.*" pageEncoding=" ...
- JavaWeb项目开发案例精粹-第2章投票系统-001设计
1.项目结构 2.数据库设计 # MySQL-Front 5.0 (Build 1.0) /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE */; /*!40101 SET ...
随机推荐
- Qt 延时
第一部分: 关于sleep函数,我们先来看一下他的作用:sleep函数是使调用sleep函数的线程休眠,线程主动放弃时间片.当经过指定的时间间隔后,再启动线程,继续执行代码.sleep函数并不能起到定 ...
- 一、IRIG-B 概念
参考:http://baike.baidu.com/view/3601618.htm http://wenku.baidu.com/view/7956cd29bd64783e09122bf1.html ...
- Java Day 07
构造函数 函数名与类名相同 不用定义返回值类型 没有具体的返回值 作用:给对象初始化值 默认构造函数 如果没有自己定义构造函数,系统会自动生成: 如果定义了,则默认构造函数不会自动生成. 构造函数与一 ...
- 使用VBA实现Excel自杀功能
曾经看到过一个“Excel-Home”出品的“关于Excel自杀功能”的视频教程,经认真学习后,我写下了自己的代码,分享于此. 实现思路: 使用VBA创建一个隐藏的名称,记录当前工作簿打开的次数,如果 ...
- BICEP单元测试计划-四则运算-测试
一.6个值得测试的具体部位,他们能够提高你的测试技巧 Right-结果是否正确? B-是否所有的边界条件都是正确的? I-能查一下反向关联吗? C-能用其他手段交叉检查一下结果吗? E-你是否可以强制 ...
- php file_put_contents() 写入回车
PHP file_put_contents() 函数是一次性向文件写入字符串或追加字符串内容的最合适选择. file_put_contents() file_put_contents() 函数用于把字 ...
- Phantom omini设备开发流程
最近在忙着做毕业设计,我的毕业设计是做力觉临场感的,所以在力反馈设备Phantom Omini,由于整个设备是国外的国内的资料很少,我是14年拿到这个设备的但是真的是在开发是在16年了,中间有很多事没 ...
- 【转】利用TCMalloc优化Nginx的性能
From: http://www.linuxidc.com/Linux/2013-04/83197.html TCMalloc的全称是 Thread-Caching Malloc,是谷歌开发的开源工具 ...
- JS 学习笔记--8---Function类型
练习使用的浏览器IE11 JS 中Function类型实际上是一种对象,每一个函数实际上都是Function类型的一个实例,每一个函数都有一些默认的属性和方法.由于函数是对象,故函数名实际上也是一 ...
- log4j 配置实例
1. http://hehongwei44.iteye.com/blog/1494999 2. http://maymay.iteye.com/blog/1275432 #log4j.rootLogg ...