JavaWeb项目开发案例精粹-第4章博客网站系统-003Dao层

1.

 1 package com.sanqing.dao;
 2 
 3 import java.util.List;
 4 
 5 import com.sanqing.fenye.Page;
 6 import com.sanqing.po.Article;
 7 
 8 public interface ArticleDAO {
 9     //定义一个add方法,用来保存博客文章
10     public void add(Article article);
11     
12     //定义一个queryUserAll,用来取出用户的所有文章
13     public List<Article> queryUserAll(String username);
14     
15     //获得用户文章总记录数
16     public int queryUserAllCount(String username);
17     
18     //按分页信息查询用户的记录
19     public List<Article> queryByPage(String username,Page page);
20     
21     //获得所有文章的总记录数
22     public int queryAllCount();
23     
24     //按分页信息查询记录
25     public List<Article> queryAllByPage(Page page);
26     
27     //按ID查询文章
28     public Article queryById(int id);
29 }

2.

 1 package com.sanqing.dao;
 2 
 3 import java.sql.SQLException;
 4 import java.util.List;
 5 
 6 import org.hibernate.HibernateException;
 7 import org.hibernate.Query;
 8 import org.hibernate.Session;
 9 import org.springframework.orm.hibernate3.HibernateCallback;
10 import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
11 
12 import com.sanqing.fenye.Page;
13 import com.sanqing.po.Article;
14 
15 public class ArticleDAOImpl extends HibernateDaoSupport implements ArticleDAO {
16 
17     //实现add方法
18     public void add(Article article) {
19         this.getHibernateTemplate().saveOrUpdate(article);
20     }
21 
22     public List<Article> queryUserAll(String username) {
23         List find = this.getHibernateTemplate().find("select art from Article art where art.username = ?", username);
24         List<Article> list = find;
25         return list;
26     }
27 
28     public int queryUserAllCount(String username) {
29         List find = this.getHibernateTemplate().find("select count(*) from Article art where art.username = ?",username);
30         return ((Long)find.get(0)).intValue();
31     }
32 
33     public List<Article> queryByPage(final String username, final Page page) {
34         return this.getHibernateTemplate().executeFind(new HibernateCallback() {
35             public Object doInHibernate(Session session)
36                     throws HibernateException, SQLException {
37                 Query query = session.createQuery("select art from Article art where art.username = ?");
38                 //设置参数
39                 query.setParameter(0, username);
40                 //设置每页显示多少个,设置多大结果。
41                 query.setMaxResults(page.getEveryPage());
42                 //设置起点
43                 query.setFirstResult(page.getBeginIndex());
44                 return query.list();
45             }
46             
47         });
48     }
49 
50     public List<Article> queryAllByPage(final Page page) {
51         return this.getHibernateTemplate().executeFind(new HibernateCallback() {
52             public Object doInHibernate(Session session)
53                     throws HibernateException, SQLException {
54                 Query query = session.createQuery("select art from Article art order by art.date desc");
55                 //设置每页显示多少个,设置多大结果。
56                 query.setMaxResults(page.getEveryPage());
57                 //设置起点
58                 query.setFirstResult(page.getBeginIndex());
59                 return query.list();
60             }
61             
62         });
63     }
64 
65     public int queryAllCount() {
66         List find = this.getHibernateTemplate().find("select count(*) from Article art");
67         return ((Long)find.get(0)).intValue();
68     }
69 
70     public Article queryById(int id) {
71         List find = this.getHibernateTemplate().find("select art from Article art where art.id = ?", id);
72         return (Article) find.get(0);
73     }
74 
75 }

3.

 1 package com.sanqing.dao;
 2 
 3 import com.sanqing.po.BlogInfo;
 4 
 5 public interface BlogInfoDAO {
 6     //设置个性化内容
 7     public void save(BlogInfo info);
 8     //获得
 9     public BlogInfo get(String username);
10 }

4.

 1 package com.sanqing.dao;
 2 
 3 import java.util.List;
 4 
 5 import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
 6 
 7 import com.sanqing.po.BlogInfo;
 8 
 9 public class BlogInfoDAOImpl extends HibernateDaoSupport implements BlogInfoDAO{
10 
11     public BlogInfo get(String username) {
12         List list = this.getHibernateTemplate().find("select bloginfo from BlogInfo bloginfo where bloginfo.username=?", username);
13         if(list.size() == 0) {
14             return null;
15         } else {
16             return (BlogInfo) list.get(0);
17         }
18     }
19 
20     public void save(BlogInfo info) {
21         this.getHibernateTemplate().saveOrUpdate(info);
22     }
23     
24 }

5.

 1 package com.sanqing.dao;
 2 
 3 import java.util.List;
 4 
 5 import com.sanqing.fenye.Page;
 6 import com.sanqing.po.Critique;
 7 
 8 public interface CritiqueDAO {
 9     //添加评论
10     public void addCritique(Critique critique);
11     
12     //获得指定文章的评论数
13     public int queryCritiqueCount(int AId);
14     
15     //根据Page来查询指定文章的评论
16     public List<Critique> queryByPage(int AId,Page page);
17 }

6.

 1 package com.sanqing.dao;
 2 
 3 import java.sql.SQLException;
 4 import java.util.List;
 5 
 6 import org.hibernate.HibernateException;
 7 import org.hibernate.Query;
 8 import org.hibernate.Session;
 9 import org.springframework.orm.hibernate3.HibernateCallback;
10 import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
11 
12 import com.sanqing.fenye.Page;
13 import com.sanqing.po.Critique;
14 
15 public class CritiqueDAOImpl extends HibernateDaoSupport implements CritiqueDAO {
16 
17     public void addCritique(Critique critique) {
18         this.getHibernateTemplate().save(critique);
19     }
20 
21     public List<Critique> queryByPage(final int AId, final Page page) {
22         return this.getHibernateTemplate().executeFind(new HibernateCallback() {
23             public Object doInHibernate(Session session)
24                     throws HibernateException, SQLException {
25                 Query query = session.createQuery("select cri from Critique cri where cri.AId = ?");
26                 query.setParameter(0, AId);
27                 //设置每页显示多少个,设置多大结果。
28                 query.setMaxResults(page.getEveryPage());
29                 //设置起点
30                 query.setFirstResult(page.getBeginIndex());
31                 return query.list();
32             }
33             
34         });
35     }
36 
37     public int queryCritiqueCount(int AId) {
38         List find = this.getHibernateTemplate().find("select count(*) from Critique cri where cri.AId = ?",AId);
39         return ((Long)find.get(0)).intValue();
40     }
41 
42 }

7.

 1 package com.sanqing.dao;
 2 
 3 import java.util.Date;
 4 import java.util.List;
 5 
 6 import com.sanqing.po.Dianjiliang;
 7 
 8 public interface DianjiliangDAO {
 9     
10     //返回该文章,该IP,该时间的访问记录
11     public List queryByAId(int AId,String IP,Date time);
12     
13     //添加访问记录
14     public void addJilu(Dianjiliang dianjiliang);
15 }

8.

 1 package com.sanqing.dao;
 2 
 3 import java.sql.SQLException;
 4 import java.util.Date;
 5 import java.util.List;
 6 
 7 import org.hibernate.HibernateException;
 8 import org.hibernate.Query;
 9 import org.hibernate.Session;
10 import org.springframework.orm.hibernate3.HibernateCallback;
11 import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
12 
13 import com.sanqing.po.Dianjiliang;
14 
15 public class DianjiliangDAOImpl extends HibernateDaoSupport implements
16         DianjiliangDAO {
17 
18     public void addJilu(Dianjiliang dianjiliang) {
19         this.getHibernateTemplate().save(dianjiliang);
20     }
21 
22     public List queryByAId(final int AId, final String IP, final Date time) {
23         return this.getHibernateTemplate().executeFind(new HibernateCallback() {
24             public Object doInHibernate(Session session)
25                     throws HibernateException, SQLException {
26                 Query query = session.createQuery("select djl from Dianjiliang djl where djl.AId = ? and djl.ip = ? and djl.time = ?");
27                 //设置参数
28                 query.setParameter(0, AId);
29                 query.setParameter(1, IP);
30                 query.setParameter(2, time);
31                 return query.list();
32             }
33             
34         });
35     }
36 
37 }

9.

 1 package com.sanqing.dao;
 2 
 3 import java.util.List;
 4 
 5 import com.sanqing.po.User;
 6 
 7 public interface UserDAO {
 8     //添加用户
 9     public void add(User user);
10     
11     //删除用户
12     public void delete(User user);
13     
14     //更新用户
15     public void update(User user);
16     
17     //查询所有用户
18     public List queryAll();
19     
20     //按id查询用户
21     public User queryByID(String username);
22 }

10.

 1 package com.sanqing.dao;
 2 
 3 import java.util.List;
 4 
 5 import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
 6 
 7 import com.sanqing.po.User;
 8 
 9 public class UserDAOImpl extends HibernateDaoSupport implements UserDAO {
10 
11     public void add(User user) {
12         this.getHibernateTemplate().save(user);
13     }
14 
15     public void delete(User user) {
16 
17     }
18 
19     public List queryAll() {
20         return null;
21     }
22 
23     public User queryByID(String username) {
24         List list = this.getHibernateTemplate().find("select user from User user where user.username = '" + username + "'");
25         
26         if(list.size() == 0) {
27             return null;
28         } else {
29             return (User)list.get(0);
30         }
31     }
32 
33     public void update(User user) {
34 
35     }
36 
37 }
原文地址:https://www.cnblogs.com/shamgod/p/5323298.html