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层的更多相关文章

  1. JavaWeb项目开发案例精粹-第4章博客网站系统-006View层

    1.showAllArticle.jsp <%@ page language="java" contentType="text/html; charset=gb23 ...

  2. JavaWeb项目开发案例精粹-第4章博客网站系统-005action层

    1. package com.sanqing.action; import java.util.Date; import java.util.Map; import com.opensymphony. ...

  3. JavaWeb项目开发案例精粹-第4章博客网站系统-004Service层

    1. package com.sanqing.service; import java.util.List; import com.sanqing.fenye.Page; import com.san ...

  4. JavaWeb项目开发案例精粹-第4章博客网站系统-002辅助类及配置文件

    1. <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5&qu ...

  5. JavaWeb项目开发案例精粹-第4章博客网站系统-001设计

    1. 2. 3. # MySQL-Front 5.0 (Build 1.0) /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE */; /*!40101 SET SQL_MO ...

  6. JavaWeb项目开发案例精粹-第6章报价管理系统-05Action层

    0. <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC &quo ...

  7. JavaWeb项目开发案例精粹-第6章报价管理系统-002辅助类及配置文件

    1. <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www ...

  8. JavaWeb项目开发案例精粹-第3章在线考试系统-007View层

    0.login.jsp <%@ page language="java" import="java.util.*" pageEncoding=" ...

  9. JavaWeb项目开发案例精粹-第2章投票系统-001设计

    1.项目结构 2.数据库设计 # MySQL-Front 5.0 (Build 1.0) /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE */; /*!40101 SET ...

随机推荐

  1. java 参数化类型

    package com.gxf.collection; import java.util.LinkedList; public class TestForT<T> { private Li ...

  2. Netsharp快速入门(之5) 基础档案(之D 实体建模 生成实体代码、同步数据库、配置插件运行时)

    作者:秋时 杨昶   时间:2014-02-15  转载须说明出处 3.3.1  同步数据库并生成dll文件 1.在基础档案和销售管理项目上右击,选择同步数据库结构来创建数据库表 2. 在基础档案项目 ...

  3. 对MVC的理解

    摘要:本文主要谈到了对PHP开发中MVC开发模式的理解. 当用户通过url触发命令时,例如url=http://control.blog.sina.com.cn/admin/article/artic ...

  4. mysql的简单主从复制(ubuntu)

    环境:两台ubuntu 12.04.5 虚拟机    mysql-server-5.5 master (192.168.240.130) slave (192.168.240.129) (1)查看二进 ...

  5. C语言函数指针基础

    本文写的非常详细,因为我想为初学者建立一个意识模型,来帮助他们理解函数指针的语法和基础.如果你不讨厌事无巨细,请尽情阅读吧. 函数指针虽然在语法上让人有些迷惑,但不失为一种有趣而强大的工具.本文将从C ...

  6. Poj 1222 EXTENDED LIGHTS OUT

    题目大意:给你一个5*6的格子,每个格子中有灯(亮着1,暗着0),每次你可以把一个暗的点亮(或者亮的熄灭)然后它上下左右的灯也会跟着变化.最后让你把所有的灯熄灭,问你应该改变哪些灯. 首先我们可以发现 ...

  7. 【BZOJ】【1020】【SHOI2008】安全的航线flight

    计算几何/二分/迭代/搜索+剪枝 写三个tag可能是因为从哪个方向来理解都可以吧…… 我完全不会计算几何所以抄了ydc的代码 题解:http://ydcydcy1.blog.163.com/blog/ ...

  8. 使用TCP协议的NAT穿透技术

    一直以来,说起NAT穿透,很多人都会被告知使用UDP打孔这个技术,基本上没有人会告诉你如何使用TCP协议去穿透(甚至有的人会直接告诉你TCP协议是无法实现穿透的).但是,众所周知的是,UDP是一个无连 ...

  9. Mybatis 自动从数据库生成entity,mapping,dao接口

    1.下载需要的jar包 mybatis-generator-core-1.3.2.jar,mysql-connector-java-5.1.39.jar 2.把上面的jar包放到某个目录,并在该目录下 ...

  10. PowerDesigner(六)-物理数据模型(PDM逆向工程)(转)

    物理数据模型PDM 物理数据模型(Physical Data Model,PDM):在数据库的逻辑结构设计好之后,就需要完成其物理设计,PDM就是为实现这一目的而设计的. 物理数据模型是以常用的DBM ...