package com.fgkj.dao.impl; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import com.fgkj.actions.ActionUtil; import com.fgkj.dao.BaseDAO; import com.fgkj.dao.CallBack; import com.fgkj.dao.DAOHelper; import com.fgkj.dao.LimitNumberFactory; import com.fgkj.dao.Page; import com.fgkj.db.DBUtil; import com.fgkj.db.IDatabaseName; import com.fgkj.dto.User_inf; import com.fgkj.dto.User_log; public class User_logImpl implements BaseDAO, CallBack { private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); public List getResults(ResultSet rs) { List list = new ArrayList(); try { while (rs.next()) { User_log ulog = new User_log(); ulog.setNum(rs.getInt("num")); ulog.setuId(rs.getInt("uId")); ulog.setuOprateType(rs.getInt("uOprateType")); ulog.setuOprateDay(rs.getTimestamp("uOprateDay")); ulog.setuTerminalIp(rs.getString("uTerminalIp")); ulog.setuOprateMsg(rs.getString("uOprateMsg")); list.add(ulog); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; } //用户的操作记录下来 public boolean add(Object obj) { User_log ulog=(User_log) obj; String sql="insert into db_equip_user.tb_user_log(uId,uOprateType,uOprateDay,uTerminalIp,uOprateMsg) values(?,?,?,?,?)"; Boolean bl=DAOHelper.executeUpdate(DBUtil.getConn(), sql, new Object[]{ulog.getuId(), ulog.getuOprateType(),ulog.getuOprateDay(),ulog.getuTerminalIp(),ulog.getuOprateMsg()}); return bl; } //用户的操作记录下来(记录多条) public boolean addPro(Object obj) { List list=(List) obj; ArrayList sql_strs=new ArrayList(); if(list!=null&&list.size()>0){ for (User_log ulog : list) { String sql="insert into db_equip_user.tb_user_log(uId,uOprateType,uOprateDay,uTerminalIp,uOprateMsg) values("+ulog.getuId()+","+ulog.getuOprateType()+",'"+DAOHelper.sdf.format(ulog.getuOprateDay())+"','"+ulog.getuTerminalIp()+"','"+ulog.getuOprateMsg()+"')"; sql_strs.add(sql); } } boolean bl=DAOHelper.makeManualCommit(DBUtil.getConn(), sql_strs); return bl; } public boolean update(Object obj) { return false; } public boolean del(Object obj) { User_log ulog=(User_log) obj; String sql="delete from db_equip_user.tb_user_log where num=?"; Boolean bl=DAOHelper.executeUpdate(DBUtil.getConn(), sql, new Object[]{ulog.getNum()}); return bl; } public List searchAll() { String sql = "select num,uId,uOprateType,uOprateDay,uTerminalIp,uOprateMsg from db_equip_user.tb_user_log order by (uOprateDay) desc"; List list = DAOHelper .executeQuery(sql, DBUtil.getConn(), null, new User_logImpl()); return list; } //5.4用户操作记录查询(根据用户名和操作类型) public List serchByCondition(Object obj) { User_log ulog=(User_log) obj; String sql=""; String numberSql=" SELECT FOUND_ROWS() number"; Connection conn=DBUtil.getConn(); String baseSql = "select SQL_CALC_FOUND_ROWS tb_user_log.uId,uoprateType,uoprateDay,uterminalIp,uoprateMsg" + ",tb_user_inf.uName " + "from db_equip_user.tb_user_inf,db_equip_user.tb_user_log " + "where tb_user_inf.uId=tb_user_log.uId " + "and tb_user_inf.uName like ?" + "and (uoprateDay)>(?) " + "and (uoprateDay)<(?) "; String sqlT="and uoprateType=?"; String sqlF="and uoprateType!=?"; if(ulog.getuOprateType()==0){ sql=baseSql+sqlF; }else{ sql=baseSql+sqlT; } String endsql = " ORDER BY uOprateDay DESC "; sql= sql+endsql; String limitSql=" limit ?,? "; sql+=limitSql; List list = DAOHelper .executeQueryLimit(sql, conn, new Object[]{"%"+ulog.getuName()+"%",ulog.getuOprateDay(),ulog.getuOprateDay1(),ulog.getuOprateType(),(ulog.getPage().getPageCurr() - 1)* ulog.getPage().getPageSize(), ulog.getPage().getPageSize() },new CallBack() { public List getResults(ResultSet rs) { List list=new ArrayList(); try { while(rs.next()){ User_log ulog=new User_log(); ulog.setuId(rs.getInt("uId")); ulog.setuName(rs.getString("uName")); ulog.setuOprateType(rs.getInt("uOprateType")); ulog.setuOprateDay(rs.getTimestamp("uOprateDay")); ulog.setuTerminalIp(rs.getString("uTerminalIp")); ulog.setuOprateMsg(rs.getString("uOprateMsg")); Page page=new Page(); ulog.setPage(page); list.add(ulog); } } 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; } public static void main(String[] args) throws ParseException { User_logImpl uimpl=new User_logImpl(); SimpleDateFormat sdf = new SimpleDateFormat(ActionUtil.time_yyyyMMddHHmmss); Date date1=sdf.parse("2020-01-01 00:00:00"); Date date2=sdf.parse("2030-01-01 00:00:00"); Page p=new Page(); p.setPageCurr(1); p.setPageSize(10); List list=new ArrayList(); User_log ulog=new User_log(); ulog.setuOprateDay(ActionUtil.getSimpDate(date1)); ulog.setuOprateDay1(ActionUtil.getSimpDate(date2)); ulog.setuId(1002); ulog.setuOprateType(1); ulog.setuName(""); ulog.setuOprateMsg("添加测试操作记录"); ulog.setuTerminalIp("127.0.0.1"); ulog.setPage(p); list.add(ulog); /*boolean bl=uimpl.addPro(list); System.out.println(bl);*/ List lu=uimpl.serchByCondition(ulog); for (User_log u : lu) { System.out.println(u); } } @Override public List serchByInfo(Object obj) { // TODO Auto-generated method stub return null; } }