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 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 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; } }