1
81041
2019-06-20 ab3c4acf83f54f8449ca8664c4a2bb79bd30f297
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
package com.fgkj.dao.impl;
 
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;
 
import com.fgkj.dao.BaseDAO;
import com.fgkj.dao.CallBack;
import com.fgkj.dao.DAOHelper;
import com.fgkj.dao.LimitNumberFactory;
import com.fgkj.db.DBUtil;
import com.fgkj.db.IDatabaseName;
import com.fgkj.dto.Announce;
import com.fgkj.dto.Page;
 
public class AnnounceImpl implements BaseDAO,CallBack{
 
    public List getResults(ResultSet rs) {
        List list=new ArrayList(); 
        
        try {
            while(rs.next()){
                Announce announ=new Announce();
                announ.setNum(rs.getInt("num"));
                announ.setUsr_id(rs.getInt("usr_id"));
                announ.setAnnounce_time(rs.getTimestamp("announce_time"));
                announ.setMessage(rs.getString("message"));
                announ.setNote(rs.getString("note"));
                list.add(announ);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } 
        return list;
    }
 
    
    //发布公告
    public boolean add(Object obj) {
        Announce announ=(Announce) obj;
        String sql="insert into web_site.tb_announce(usr_id,announce_time,message,note) values(?,?,?,?) ";
        Boolean bl=DAOHelper.executeUpdate(DBUtil.getConn(), sql, new Object[]{announ.getUsr_id()
            ,announ.getAnnounce_time(),announ.getMessage(),announ.getNote()});
        return bl;
    }
    //更新修改公告
    public boolean update(Object obj) {
        Announce announ=(Announce) obj;
        String sql="update web_site.tb_announce set usr_id=?,announce_time=?,message=?,note=? where num=? ";
        Boolean bl=DAOHelper.executeUpdate(DBUtil.getConn(), sql, new Object[]{announ.getUsr_id()
            ,announ.getAnnounce_time(),announ.getMessage(),announ.getNote(),announ.getNum()});
        return bl;
    }
    //删除公告
    public boolean del(Object obj) {
        Announce announ=(Announce) obj;
        String sql="delete from web_site.tb_announce where num=?";
        Boolean bl=DAOHelper.executeUpdate(DBUtil.getConn(), sql, new Object[]{announ.getNum()});
        return bl;
    }
 
    //0.6公告信息显示(未分页)
    public List searchAll() {
        String sql="select num,usr_id,announce_time,message,note from web_site.tb_announce order by announce_time desc";
        List list=DAOHelper.executeQuery(sql, DBUtil.getConn(), null, new AnnounceImpl());
        return list;
    }
   
     //根据条件查询公告信息
    public List serchByCondition(Object obj) {
        Announce announ=(Announce) obj;
        //System.out.println(announ);
        String numberSql="SELECT FOUND_ROWS() number";//存放总数
        Connection conn=DBUtil.getConn();//sql和numberSql共用一个connection
        String sql="";
        String baseSql="select SQL_CALC_FOUND_ROWS num,usr_id,announce_time,message,note " +
                "FROM web_site.tb_announce where announce_time>=? and announce_time<=? "+
                " and message like ?  ";
        //发布人选择
        String usrSqlT=" and usr_id!=? ";//全部为0
        String usrSqlF=" and usr_id=? ";//
        if(announ.getUsr_id()==0){
            baseSql+=usrSqlT;
        }else{
            baseSql+=usrSqlF;
        }
        String endSql=" order by announce_time desc  limit ?,?";
        sql=baseSql+endSql;
        //System.out.println(sql);
        List<Announce> list=DAOHelper.executeQueryLimit(sql, conn, new Object[]{announ.getAnnounce_time(),announ.getAnnounce_time1(),
            "%"+announ.getMessage()+"%",announ.getUsr_id(),(announ.getPage().getPageCurr() - 1)* announ.getPage().getPageSize(),
            announ.getPage().getPageSize()}, new CallBack() {
            
            public List getResults(ResultSet rs) {
                List list=new ArrayList(); 
                try {
                    while(rs.next()){
                        Announce announ=new Announce();
                        announ.setNum(rs.getInt("num"));
                        announ.setUsr_id(rs.getInt("usr_id"));
                        announ.setAnnounce_time(rs.getTimestamp("announce_time"));
                        announ.setMessage(rs.getString("message"));
                        announ.setNote(rs.getString("note"));
                        Page page=new Page();
                        announ.setPage(page);
                        list.add(announ);
                    }
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                return list;
            }
        });
        //去掉limit条件后的总数
        int number=LimitNumberFactory.GetLimtitNumber(conn, numberSql);
        //System.out.println("number: "+number);
        if(list!=null&&list.size()>0){
            list.get(list.size()-1).getPage().setPageAll(number);
        }
        return list;
    }
 
 
     //0.6公告信息显示(分页)
    public List serchByInfo(Object obj) {
        Page page=(Page) obj;
        String numberSql="SELECT FOUND_ROWS() number";//存放总数
        Connection conn=DBUtil.getConn();//sql和numberSql共用一个connection
        String sql="select SQL_CALC_FOUND_ROWS num,usr_id,announce_time,message,note from web_site.tb_announce  order by announce_time desc limit ?,?";
        List<Announce> list=DAOHelper.executeQueryLimit(sql, conn, new Object[]{(page.getPageCurr() - 1)* page.getPageSize(),
            page.getPageSize()}, new AnnounceImpl());
        //去掉limit条件后的总数
        int number=LimitNumberFactory.GetLimtitNumber(conn, numberSql);
        //System.out.println("number: "+number);
        if(list!=null&&list.size()>0){
            list.get(list.size()-1).getPage().setPageAll(number);
        }
        return list;
    }
 
}