JdbcTemplate的用法

网友投稿 621 2022-10-29

JdbcTemplate的用法

JdbcTemplate的用法

import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map;import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.springframework.jdbc.core.BatchPreparedStatementSetter; import org.springframework.jdbc.core.RowMapper; /** * 设备消息与数据库交互部分 * */ public class MysqlSpiderDSFacadeImpl extends BaseSpringDao implements BaseDSFacade { public static final String BEAN_NAME = "mySQLSpiderDSFacadeImpl"; private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); private int activityIntervalDays=15; public int getActivityIntervalDays() { return activityIntervalDays; } public void setActivityIntervalDays(int activityIntervalDays) { this.activityIntervalDays = activityIntervalDays; } public int batch_push_pid_num=200; public int getBatch_push_pid_num() { return batch_push_pid_num; } public void setBatch_push_pid_num(int batchPushPidNum) { batch_push_pid_num = batchPushPidNum; } private static Log log = Log.getInstance(MysqlSpiderDSFacadeImpl.class); /* create table push_device_info ( pid bigint(64) not null, device_model varchar(32), deviceid_type varchar(10), deviceid varchar(32), device_imsi varchar(100), os_version varchar(100), cust_version varchar(100), pe_version varchar(100), pe_vercode varchar(100), pe_pkgname varchar(100), netaccess_type varchar(10), ip varchar(64), operation_type varchar(10), --area_name varchar(64), country_code varchar(32), city_name varchar(64), createtime datetime, updatetime datetime, primary key (pid) ) engine=innodb default charset=utf8; */ private DeviceInfoRowMapper deviceInfoRowMapper = new DeviceInfoRowMapper(); private class DeviceInfoRowMapper implements RowMapper { public Object mapRow(ResultSet rs, int i) throws SQLException { DeviceInfoVO dvo = new DeviceInfoVO(); dvo.setPid(rs.getLong("pid")); dvo.setDevice_model(rs.getString("device_model")); dvo.setDeviceid_type(rs.getString("deviceid_type")); dvo.setDeviceid(rs.getString("deviceid")); dvo.setDevice_imsi(rs.getString("device_imsi")); dvo.setOs_version(rs.getString("os_version")); dvo.setCust_version(rs.getString("cust_version")); dvo.setPe_version(rs.getString("pe_version")); dvo.setPe_vercode(rs.getString("pe_vercode")); dvo.setPe_pkgname(rs.getString("pe_pkgname")); dvo.setNetaccess_type(rs.getString("netaccess_type")); dvo.setIp(rs.getString("ip")); dvo.setOperation_type(rs.getString("operation_type")); //dvo.setArea_name(rs.getString("area_name")); dvo.setCountry_code(rs.getString("country_code")); dvo.setCity_name(rs.getString("city_name")); //dvo.setApn(rs.getString("apn")); //dvo.(rs.getString("apn")); dvo.setCreatedate(rs.getDate("createdate")); dvo.setModifydate(rs.getDate("modifydate")); dvo.setPepollversion(rs.getString("pepollversion")); return dvo; } } public boolean delDeviceInfo(long pid){ try { String sql = "delete from push_device_info where pid=?"; return getJdbcTemplateForPushmarketing().update(sql, new Object[] { pid }) > 0; } catch (Exception e) { throw new PsbDaoException(e);// 应该换成throws ConnectionException, // RemoteException; } } @SuppressWarnings("unchecked") public DeviceInfoVO getDeviceInfo(long pid) { Logger logger=Logger.getLogger("getDeviceInfo"); long startTime=System.currentTimeMillis(); try { String sql = "select * from push_device_info where pid=?"; List list = getJdbcTemplateForPushmarketing().query(sql, new Object[] { pid }, deviceInfoRowMapper); logger.debug("Call MYSQL getDeviceInfo sql["+sql+"]"); logger.debug("Call MYSQL getDeviceState cost["+(System.currentTimeMillis()-startTime)+"]ms"); if (list.size() > 0) { return list.get(0); } return null; } catch (Exception e) { throw new PsbDaoException(e); } } @SuppressWarnings("unchecked") public List getDeviceListByCondition(String condition) { Logger logger=Logger.getLogger("getDeviceListByCondition"); long startTime=System.currentTimeMillis(); try { String sql = "select pid from push_device_info where "+condition; List list = (ArrayList)getJdbcTemplateForPushmarketing().query(sql, new RowMapper() { public Object mapRow(ResultSet rs, int rowNum) throws SQLException { Long d = 0l; d=rs.getLong("pid"); return d; } }); log.debug("getDeviceListByCondition sql["+sql+"]"); logger.debug("Call MYSQL getDeviceListByCondition sql["+sql+"]"); logger.debug("Call MYSQL getDeviceListByCondition cost["+(System.currentTimeMillis()-startTime)+"]ms"); if (list.size() > 0) { return list; } return null; } catch (Exception e) { throw new PsbDaoException(e); } } @SuppressWarnings("unchecked") public List getDeviceMapListByCondition(String condition) { Logger logger=Logger.getLogger("getDeviceMapListByCondition"); long startTime=System.currentTimeMillis(); try { //增加活跃用户的条件过滤 long modifydatetime=(System.currentTimeMillis()-activityIntervalDays*24*3600*1000l)/1000; String sql = "select pid,pepollversion from push_device_info where UNIX_TIMESTAMP(modifydate)>? and "+condition; //String sql = "select pid,pepollversion from push_device_info where "+condition; List list = (ArrayList)getJdbcTemplateForPushmarketing().query(sql,new Object[] { modifydatetime }, new RowMapper() { public Object mapRow(ResultSet rs, int rowNum) throws SQLException { String[] pid_peversion = new String[2]; pid_peversion[0]=String.valueOf(rs.getLong("pid")); pid_peversion[1]=rs.getString("pepollversion"); return pid_peversion; } }); log.info("getDeviceMapListByCondition sql["+sql+"]first ?["+modifydatetime+"]"); logger.debug("Call MYSQL getDeviceMapListByCondition sql["+sql+"]"); logger.debug("Call MYSQL getDeviceMapListByCondition cost["+(System.currentTimeMillis()-startTime)+"]ms"); if (list.size() > 0) { return list; } return null; } catch (Exception e) { throw new PsbDaoException(e); } } @SuppressWarnings("unchecked") public List getDeviceMapListByAssginPids(String pids) { Logger logger=Logger.getLogger("getDeviceMapListByAssginPids"); long startTime=System.currentTimeMillis(); try { String sql = "select pid,pepollversion from push_device_info where pid in ("+pids+")"; List list = (ArrayList)getJdbcTemplateForPushmarketing().query(sql, new RowMapper() { public Object mapRow(ResultSet rs, int rowNum) throws SQLException { String[] pid_peversion = new String[2]; pid_peversion[0]=String.valueOf(rs.getLong("pid")); pid_peversion[1]=rs.getString("pepollversion"); return pid_peversion; } }); log.debug("getDeviceMapListByAssginPids sql["+sql+"]"); logger.debug("Call MYSQL getDeviceMapListByAssginPids sql["+sql+"]"); logger.debug("Call MYSQL getDeviceMapListByAssginPids cost["+(System.currentTimeMillis()-startTime)+"]ms"); if (list.size() > 0) { return list; } return null; } catch (Exception e) { throw new PsbDaoException(e); } } /* * push_device_info deviceInfoVO = new DeviceInfoVO(); deviceInfoVO.setDevice_model(ussData.getRegister_devicemodel()); deviceInfoVO.setDeviceid_type(ussData.getRegister_deviceidtype()); deviceInfoVO.setDeviceid(ussData.getRegister_deviceid()); deviceInfoVO.setIp(IpConvertUtil.toDotFormat(ussData .getRegister_source_ip())); deviceInfoVO.setOs_version(ussData.getRegister_osversion()); deviceInfoVO.setPe_version(filter_resource); deviceInfoVO.setDevice_imsi(ussData.getRegister_imsi()); deviceInfoVO.setCreatedate(sdf .parse(ussData.getRegister_date())); deviceInfoVO.setModifydate(new Date()); device_model deviceid_type deviceid os_version pe_version device_imsi pepollversion createdate modifydate */ public boolean updateDeviceInfoByPidSyc(DeviceInfoVO deviceInfoVO) { Logger logger=Logger.getLogger("updateDeviceInfoByPidSyc"); //long startTime=System.currentTimeMillis(); try { //暂时持久化Netaccess_typ apn Pepollversion ip modifydate String updateSql = "update push_device_info set device_model =?,deviceid_type =?,deviceid =?, " + " os_version =? , pe_version =?, device_imsi =? , createdate =?, "+ " modifydate =? , pepollversion =? where pid=?;"; int result=getJdbcTemplateForPushmarketing().update(updateSql, new Object[] { deviceInfoVO.getDevice_model(), deviceInfoVO.getDeviceid_type(), deviceInfoVO.getDeviceid(), //deviceInfoVO.getIp(); deviceInfoVO.getOs_version(), deviceInfoVO.getPe_version(), deviceInfoVO.getDevice_imsi(), deviceInfoVO.getCreatedate(), deviceInfoVO.getModifydate(), deviceInfoVO.getPepollversion(), deviceInfoVO.getPid() }); logger.debug("Call MYSQL updateDeviceInfo updateSql["+updateSql+"]"); return result>0; } catch (Exception e) { throw new PsbDaoException(e); } //return true; } /* * push_device_info * pid bigint(64) not null, device_model varchar(32), deviceid_type varchar(10), deviceid varchar(32), device_imsi varchar(100), os_version varchar(100), cust_version varchar(100), pe_version varchar(100), pe_vercode varchar(100), pe_pkgname varchar(100), netaccess_type varchar(10), ip varchar(64), operation_type varchar(10), --area_name varchar(64), country_code varchar(32), city_name varchar(64), createtime datetime, updatetime datetime, */ public boolean updateDeviceInfo(DeviceInfoVO deviceInfoVO) { Logger logger=Logger.getLogger("updateDeviceInfo"); long startTime=System.currentTimeMillis(); try { //暂时持久化Netaccess_typ apn Pepollversion ip modifydate String updateSql = "update push_device_info set netaccess_type =?,ip =?,apn =?, " + " modifydate =? , pepollversion =? ,accessnum =? where pid=?;"; String insertSql = "insert into push_device_info(pid,device_model,deviceid_type,deviceid,device_imsi,os_version,cust_version," + "pe_version,pe_vercode,pe_pkgname,netaccess_type,ip,operation_type,apn,charge_status,country_code,city_name,sysid,locid,cellid,latitude,longitude,createdate,modifydate,pepollversion,accessnum ) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);"; int result=getJdbcTemplateForPushmarketing().update(updateSql, new Object[] { deviceInfoVO.getNetaccess_type(), deviceInfoVO.getIp(), deviceInfoVO.getApn(), deviceInfoVO.getModifydate(), deviceInfoVO.getPepollversion(), deviceInfoVO.getAccessnum(), deviceInfoVO.getPid() }); logger.debug("Call MYSQL updateDeviceInfo updateSql["+updateSql+"]"); //更新失败,插入记录 if(result<1){ result= getJdbcTemplateForPushmarketing().update(insertSql, new Object[] { deviceInfoVO.getPid(), deviceInfoVO.getDevice_model(), deviceInfoVO.getDeviceid_type(), deviceInfoVO.getDeviceid(), deviceInfoVO.getDevice_imsi(), deviceInfoVO.getOs_version(), deviceInfoVO.getCust_version(), deviceInfoVO.getPe_version(), deviceInfoVO.getPe_vercode(), deviceInfoVO.getPe_pkgname(), deviceInfoVO.getNetaccess_type(), deviceInfoVO.getIp(), deviceInfoVO.getOperation_type(), deviceInfoVO.getApn(), deviceInfoVO.getCharge_status(), //deviceInfoVO.getArea_name(), deviceInfoVO.getCountry_code(), deviceInfoVO.getCity_name(), deviceInfoVO.getSysid(), deviceInfoVO.getLocid(), deviceInfoVO.getCellid(), deviceInfoVO.getLatitude(), deviceInfoVO.getLongitude(), new Date(), new Date(), deviceInfoVO.getPepollversion(), deviceInfoVO.getAccessnum(), }); logger.debug("Call MYSQL updateDeviceInfo insertSql["+insertSql+"]"); } logger.debug("Call MYSQL updateDeviceInfo cost["+(System.currentTimeMillis()-startTime)+"]ms"); return result>0; } catch (Exception e) { throw new PsbDaoException(e); } //return true; } @Override public boolean saveDeviceInfo(DeviceInfoVO deviceInfoVO) { Logger logger=Logger.getLogger("saveDeviceInfo"); long startTime=System.currentTimeMillis(); /* * deviceInfoVO.getDevice_model(), deviceInfoVO.getDeviceid_type(), deviceInfoVO.getDeviceid(), deviceInfoVO.getDevice_imsi(), deviceInfoVO.getOs_version(), deviceInfoVO.getCust_version(), deviceInfoVO.getPe_version(), deviceInfoVO.getPe_vercode(), deviceInfoVO.getPe_pkgname(), deviceInfoVO.getNetaccess_type(), deviceInfoVO.getIp(), deviceInfoVO.getCreatedate(), deviceInfoVO.getModifydate(), deviceInfoVO.getPepollversion(), deviceInfoVO.getChannelname(), deviceInfoVO.getPid() createdate,modifydate, pepollversion,channelname */ String updateSql = "update push_device_info set device_model =?,deviceid_type =?,deviceid =?, " + " device_imsi =?,os_version =?,cust_version =?, " + " pe_version =?,pe_vercode =?,pe_pkgname =?, " + " netaccess_type =?,ip =?,createdate =?,modifydate=?,pepollversion=?," + " channelname =?,accessnum =? where pid=?;"; int result=0; //暂时未持久化apn、operator_code、charge_status等动态信息,只在缓存中更新 String insertSql = "insert into push_device_info(pid,device_model,deviceid_type,deviceid,device_imsi,os_version,cust_version,pe_version,pe_vercode,pe_pkgname,netaccess_type,ip,operation_type,country_code,city_name,operator_code,apn,sysid,locid,cellid,latitude,longitude,charge_status,createdate,modifydate, pepollversion,channelname,accessnum) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);"; //logger.debug("Call MYSQL saveDeviceInfo insertSql["+insertSql+"]"); try { result= getJdbcTemplateForPushmarketing().update(insertSql, new Object[] { deviceInfoVO.getPid(), deviceInfoVO.getDevice_model(), deviceInfoVO.getDeviceid_type(), deviceInfoVO.getDeviceid(), deviceInfoVO.getDevice_imsi(), deviceInfoVO.getOs_version(), deviceInfoVO.getCust_version(), deviceInfoVO.getPe_version(), deviceInfoVO.getPe_vercode(), deviceInfoVO.getPe_pkgname(), deviceInfoVO.getNetaccess_type(), deviceInfoVO.getIp(), deviceInfoVO.getOperation_type(), //deviceInfoVO.getArea_name(), deviceInfoVO.getCountry_code(), deviceInfoVO.getCity_name(), deviceInfoVO.getOperator_code(), deviceInfoVO.getApn(), deviceInfoVO.getSysid(), deviceInfoVO.getLocid(), deviceInfoVO.getCellid(), deviceInfoVO.getLatitude(), deviceInfoVO.getLongitude(), deviceInfoVO.getCharge_status(), new Date(), new Date(), deviceInfoVO.getPepollversion(), deviceInfoVO.getChannelname(), deviceInfoVO.getAccessnum() }); logger.debug("Call MYSQL saveDeviceInfo cost["+(System.currentTimeMillis()-startTime)+"]ms"); return result>0; } catch (Exception e) { //插入失败,更新记录 if(result<1){ result=getJdbcTemplateForPushmarketing().update(updateSql, new Object[] { deviceInfoVO.getDevice_model(), deviceInfoVO.getDeviceid_type(), deviceInfoVO.getDeviceid(), deviceInfoVO.getDevice_imsi(), deviceInfoVO.getOs_version(), deviceInfoVO.getCust_version(), deviceInfoVO.getPe_version(), deviceInfoVO.getPe_vercode(), deviceInfoVO.getPe_pkgname(), deviceInfoVO.getNetaccess_type(), deviceInfoVO.getIp(), deviceInfoVO.getCreatedate(), deviceInfoVO.getModifydate(), deviceInfoVO.getPepollversion(), deviceInfoVO.getChannelname(), deviceInfoVO.getAccessnum(), deviceInfoVO.getPid() }); logger.debug("Call MYSQL saveDeviceInfo updateSql["+updateSql+"]"); } return result>0; } } @SuppressWarnings("unchecked") @Override public List getHistoryNeedIPConvertDevices() { List list=new ArrayList(); Logger logger=Logger.getLogger("getHistoryNeedIPConvertDevices"); long startTime=System.currentTimeMillis(); try { String sql = "select pid,ip from push_device_info where UNIX_TIMESTAMP(createdate) 0) { return list; } } catch (Exception e) { throw new PsbDaoException(e); } return list; } @SuppressWarnings("unchecked") @Override public List getLastDayNeedIPConvertDevices() { List list=new ArrayList(); Logger logger=Logger.getLogger("getLastDayNeedIPConvertDevices"); long startTime=System.currentTimeMillis(); long yesterdayTime=(System.currentTimeMillis()-24*3600*1000l)/1000; try { String sql = "select * from push_device_info where UNIX_TIMESTAMP(createdate)>? and ( city_name is null or city_name=? );"; list = getJdbcTemplateForPushmarketing().query(sql,new Object[] { yesterdayTime,"null"}, new RowMapper() { public Object mapRow(ResultSet rs, int rowNum) throws SQLException { DeviceInfoVO d = new DeviceInfoVO(); d.setPid(rs.getLong("pid")); d.setIp(rs.getString("ip")); return d; } }); log.debug("Call MYSQL getLastDayNeedIPConvertDevices sql["+sql+"]"); logger.debug("Call MYSQL getLastDayNeedIPConvertDevices sql["+sql+"]"); logger.debug("Call MYSQL getLastDayNeedIPConvertDevices cost["+(System.currentTimeMillis()-startTime)+"]ms"); if (list.size() > 0) { return list; } } catch (Exception e) { throw new PsbDaoException(e); } return list; } @SuppressWarnings("unchecked") public List getLastDaysNeedIPConvertDevices(int lastdays) { List list=new ArrayList(); Logger logger=Logger.getLogger("getLastDaysNeedIPConvertDevices"); long startTime=System.currentTimeMillis(); long yesterdayTime=(System.currentTimeMillis()-lastdays*24*3600*1000l)/1000; try { String sql = "select * from push_device_info where UNIX_TIMESTAMP(createdate)>? and ( city_name is null or city_name=? );"; list = getJdbcTemplateForPushmarketing().query(sql,new Object[] { yesterdayTime,"null"}, new RowMapper() { public Object mapRow(ResultSet rs, int rowNum) throws SQLException { DeviceInfoVO d = new DeviceInfoVO(); d.setPid(rs.getLong("pid")); d.setIp(rs.getString("ip")); return d; } }); log.debug("Call MYSQL getLastDaysNeedIPConvertDevices sql["+sql+"]"); logger.debug("Call MYSQL getLastDaysNeedIPConvertDevices sql["+sql+"]"); logger.debug("Call MYSQL getLastDaysNeedIPConvertDevices cost["+(System.currentTimeMillis()-startTime)+"]ms"); if (list.size() > 0) { return list; } } catch (Exception e) { throw new PsbDaoException(e); } return list; } @Override public boolean updateDeviceOperationAndCity(long pid, String operation, String countryCode, String cityName) { Logger logger=Logger.getLogger("updateDeviceOperationAndCity"); long startTime=System.currentTimeMillis(); try { String updateSql = "update push_device_info set operation_type =?, country_code=?,city_name=? where pid=?;"; int result=getJdbcTemplateForPushmarketing().update(updateSql, new Object[] { operation,countryCode,cityName,pid}); logger.debug("Call MYSQL updateDeviceOperationAndCity cost["+(System.currentTimeMillis()-startTime)+"]ms"); return result>0; } catch (Exception e) { throw new PsbDaoException(e); } } public boolean saveUss2PushDeviceInfo(DeviceInfoVO deviceInfoVO) { Logger logger = Logger.getLogger("insertDeviceinfo"); long startTime = System.currentTimeMillis(); try { int result = 0; String insertSql = "insert into push_device_info(pid,device_model,deviceid_type,deviceid,device_imsi,os_version,cust_version," + "pe_version,pe_vercode,pe_pkgname,netaccess_type,ip,operation_type,city_name,createdate,modifydate ) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);"; result = getJdbcTemplateForPushmarketing().update( insertSql, new Object[] { deviceInfoVO.getPid(), deviceInfoVO.getDevice_model(), deviceInfoVO.getDeviceid_type(), deviceInfoVO.getDeviceid(), deviceInfoVO.getDevice_imsi(), deviceInfoVO.getOs_version(), deviceInfoVO.getCust_version(), deviceInfoVO.getPe_version(), deviceInfoVO.getPe_vercode(), deviceInfoVO.getPe_pkgname(), deviceInfoVO.getNetaccess_type(), deviceInfoVO.getIp(), deviceInfoVO.getOperation_type(), deviceInfoVO.getCity_name(), deviceInfoVO.getCreatedate(), deviceInfoVO.getCreatedate() }); logger.debug("Uss Uss2PushDeviceInfo insertSql[" + insertSql + "]"); // } logger.debug("Uss Uss2PushDeviceInfo cost[" + (System.currentTimeMillis() - startTime) + "]ms"); return result > 0; } catch (Exception e) { throw new PsbDaoException(e); } } private PushTaskInfoRowMapper pushTaskInfoRowMapper = new PushTaskInfoRowMapper(); /* drop table if exists push_task_info; create table push_task_info ( id varchar(32) not null, task_name varchar(64) default null, task_type varchar(10) not null, task_status varchar(10) default null, task_source_sid varchar(100) default null, task_source_trust varchar(10) default null, task_priority varchar(10) default null, task_condition text, task_pushcontent text, task_keywords varchar(100) default null, task_description text, task_startdate datetime default null, task_enddate datetime default null, assignuser_type int(10) not null, assignuser_list text, blacklist_type int(10) not null, blacklist_content text, createdate datetime default null, modifydate datetime default null, primary key (id) ) engine=innodb default charset=utf8; */ private class PushTaskInfoRowMapper implements RowMapper { public Object mapRow(ResultSet rs, int i) throws SQLException { PushTaskInfo pushTaskInfo = new PushTaskInfo(); pushTaskInfo.setId(rs.getString("id")); pushTaskInfo.setTask_name(rs.getString("task_name")); pushTaskInfo.setTask_biz_type(rs.getString("task_biz_type")); pushTaskInfo.setTask_priority(rs.getString("task_priority")); pushTaskInfo.setTask_status(rs.getString("task_status")); pushTaskInfo.setTask_pushcontent(rs.getString("task_pushcontent")); pushTaskInfo.setTask_condition(rs.getString("task_condition")); pushTaskInfo.setAssignuser_type(rs.getString("assignuser_type")); pushTaskInfo.setAssignuser_list(rs.getString("assignuser_list")); pushTaskInfo.setBlacklist_type(rs.getString("blacklist_type")); pushTaskInfo.setBlacklist_content(rs.getString("blacklist_content")); pushTaskInfo.setTask_startdate(rs.getDate("createdate")); pushTaskInfo.setTask_source_sid(rs.getString("task_source_sid")); pushTaskInfo.setTask_source_trust(rs.getString("task_source_trust")); pushTaskInfo.setTask_keywords(rs.getString("task_keywords")); pushTaskInfo.setTask_description(rs.getString("task_description")); pushTaskInfo.setPepollversion(rs.getString("pepollversion")); pushTaskInfo.setTask_pushurl(rs.getString("task_pushurl")); pushTaskInfo.setTask_ad_type(rs.getString("task_ad_type")); pushTaskInfo.setTask_pushtitle(rs.getString("task_pushtitle")); pushTaskInfo.setTask_adbiz_type(rs.getString("task_adbiz_type")); pushTaskInfo.setTask_appaction(rs.getString("task_appaction")); pushTaskInfo.setTask_msg_ttl(rs.getInt("task_msg_ttl")); return pushTaskInfo; } } @SuppressWarnings("unchecked") @Override public List queryPushTaskListInOneDay(String task_status) { String start_datestr=DateUtil.DateBefAft(-1, "yyyy-MM-dd"); start_datestr+=" 23:59:59"; Date startdate=DateUtil.parseStringToDate(start_datestr); long starttime=startdate.getTime(); long endtime=starttime+24*3600*1000l; log.debug("queryPushTaskListInOneDay start_datestr["+start_datestr+"] startTIME["+startdate.getTime()+"]"+"endTIME["+endtime+"]"); List list=new ArrayList(); Logger logger=Logger.getLogger("queryPushTaskListInOneDay"); long startTime=System.currentTimeMillis(); //long yesterdayTime=System.currentTimeMillis()-24*3600*1000l; try { String sql = "select * from push_task_info where UNIX_TIMESTAMP(task_startdate)>? and UNIX_TIMESTAMP(task_startdate) 0) { return list; } } catch (Exception e) { throw new PsbDaoException(e); } return list; } @SuppressWarnings("unchecked") public List queryPushTaskListDays(int lastdays,String task_status) { String start_datestr=DateUtil.DateBefAft(-(lastdays), "yyyy-MM-dd"); start_datestr+=" 23:59:59"; Date startdate=DateUtil.parseStringToDate(start_datestr); long starttime=startdate.getTime(); long endtime=starttime+24*3600*1000l; log.debug("queryPushTaskListInOneDay start_datestr["+start_datestr+"] startTIME["+startdate.getTime()+"]"+"endTIME["+endtime+"]"); List list=new ArrayList(); Logger logger=Logger.getLogger("queryPushTaskListInOneDay"); long startTime=System.currentTimeMillis(); //long yesterdayTime=System.currentTimeMillis()-24*3600*1000l; try { String sql = "select * from push_task_info where UNIX_TIMESTAMP(task_startdate)>? and UNIX_TIMESTAMP(task_startdate) 0) { return list; } } catch (Exception e) { throw new PsbDaoException(e); } return list; } @SuppressWarnings("unchecked") @Override public PushTaskInfo queryPushTaskInfoById(String id,String task_status) { List list=new ArrayList(); Logger logger=Logger.getLogger("queryPushTaskInfoById"); long startTime=System.currentTimeMillis(); //long yesterdayTime=System.currentTimeMillis()-24*3600*1000l; try { String sql = "select * from push_task_info where id=? and task_status=? ;"; list = getJdbcTemplateForPushmarketing().query(sql,new Object[] { id, task_status},pushTaskInfoRowMapper); logger.debug("Call MYSQL queryPushTaskListInOneDay sql["+sql+"]"); logger.debug("Call MYSQL queryPushTaskListInOneDay cost["+(System.currentTimeMillis()-startTime)+"]ms"); if (list.size() > 0) { return list.get(0); } } catch (Exception e) { throw new PsbDaoException(e); } return null; } @Override public boolean updatePushTaskInfoById(String id, String taskStatus) { Logger logger=Logger.getLogger("updatePushTaskInfoById"); long startTime=System.currentTimeMillis(); try { String updateSql = "update push_task_info set task_status=? where id=?;"; int result=getJdbcTemplateForPushmarketing().update(updateSql, new Object[] { taskStatus,id}); logger.debug("Call MYSQL updatePushTaskInfoById cost["+(System.currentTimeMillis()-startTime)+"]ms"); return result>0; } catch (Exception e) { throw new PsbDaoException(e); } } @Override public boolean updatePushTaskInfoActdevicenum(String id, int task_actdevice_cnt) { Logger logger=Logger.getLogger("updatePushTaskInfoActdevicenum"); long startTime=System.currentTimeMillis(); try { String updateSql = "update push_task_info set task_actdevice_cnt=? where id=?;"; int result=getJdbcTemplateForPushmarketing().update(updateSql, new Object[] { task_actdevice_cnt,id}); logger.debug("Call MYSQL updatePushTaskInfoActdevicenum cost["+(System.currentTimeMillis()-startTime)+"]ms"); return result>0; } catch (Exception e) { throw new PsbDaoException(e); } } @Override public boolean updatePushTaskInfoById(String id, String taskStatus,int devicenum) { Logger logger=Logger.getLogger("updatePushTaskInfoById"); long startTime=System.currentTimeMillis(); try { String updateSql = "update push_task_info set task_status=?,task_actdevice_cnt=? where id=?;"; int result=getJdbcTemplateForPushmarketing().update(updateSql, new Object[] { taskStatus,devicenum ,id}); logger.debug("Call MYSQL updatePushTaskInfoById cost["+(System.currentTimeMillis()-startTime)+"]ms"); return result>0; } catch (Exception e) { throw new PsbDaoException(e); } } @Override public boolean updatePushTaskInfoById(PushTaskInfo pushTaskInfo) { // TODO Auto-generated method stub return false; } @SuppressWarnings("unchecked") @Override public boolean flushDeviceDimenBylastdays(int lastdays,final String dimenkey) { Logger logger=Logger.getLogger("flushDeviceModelDimenBylastdays"); long startTime=System.currentTimeMillis(); String start_daystr=DateUtil.DateBefAft(-(lastdays), "yyyy-MM-dd"); String end_daystr=DateUtil.DateBefAft(0, "yyyy-MM-dd"); //String act_startdaystr=DateUtil.DateBefAft(-(activityIntervalDays), "yyyy-MM-dd"); String start_datestr=start_daystr+" 00:00:00"; String end_datestr=end_daystr+" 23:59:59"; //String act_startdatestr=act_startdaystr+" 00:00:00"; Date startdate=DateUtil.parseStringToDate(start_datestr); Date enddate=DateUtil.parseStringToDate(end_datestr); long act_starttime=(System.currentTimeMillis()-activityIntervalDays*24*3600*1000l)/1000; log.debug("Call MYSQL flushDeviceDimenBylastdays start_daystr["+start_daystr+"]startdate.getTime()["+startdate.getTime()+"] "); log.debug("Call MYSQL flushDeviceDimenBylastdays end_daystr["+end_daystr+"]enddate.getTime()["+enddate.getTime()+"] "); log.debug("Call MYSQL flushDeviceDimenBylastdays act_starttime["+act_starttime+"] "); List list=new ArrayList(); List batchInsertlist=new ArrayList(); try { String sql = "select "+dimenkey+" ,count(*) as act_devicenum from push_device_info where UNIX_TIMESTAMP(createdate)>? and UNIX_TIMESTAMP(createdate) ? group by "+dimenkey+" ;"; list = getJdbcTemplateForPushmarketing().query(sql,new Object[] { (startdate.getTime())/1000,(enddate.getTime())/1000,act_starttime}, new RowMapper() { public Object mapRow(ResultSet rs, int rowNum) throws SQLException { DeviceDimenInfo d = new DeviceDimenInfo(); d.setDimen_key(dimenkey); if(StringUtils.isBlank(rs.getString(dimenkey))||"null".equals(rs.getString(dimenkey))||"unknown".equals(rs.getString(dimenkey))||"unkown".equals(rs.getString(dimenkey))){ return null; }else{ d.setDimen_value(rs.getString(dimenkey)); } d.setAct_devicenum(rs.getInt("act_devicenum")); //暂时固定为0 d.setAll_devicenum(0); d.setP_htmlfilepath(""); return d; } }); if(log.isDebugEnabled()){ sql="select "+dimenkey+" ,count(*) as act_devicenum from push_device_info where UNIX_TIMESTAMP(createdate)>"+ (startdate.getTime())/1000+ " and UNIX_TIMESTAMP(createdate) <"+(enddate.getTime())/1000+" and UNIX_TIMESTAMP(modifydate)>"+act_starttime+" group by "+dimenkey+";"; log.debug("Call MYSQL flushDeviceDimenBylastdays sql["+sql+"]"); logger.debug("Call MYSQL flushDeviceDimenBylastdays sql["+sql+"]"); logger.debug("Call MYSQL flushDeviceDimenBylastdays cost["+(System.currentTimeMillis()-startTime)+"]ms"); } if (list!=null&&list.size() > 0) { //如果数据库不存在该项维度信息,则添加至批量插入维度信息List for(DeviceDimenInfo ddi:list){ if(ddi!=null&&!getDeviceDimenInfo(ddi)){ batchInsertlist.add(ddi); } } } saveDeviceDimenlist(batchInsertlist); return true; } catch (Exception e) { throw new PsbDaoException(e); } //return list; } @SuppressWarnings("unchecked") public boolean flushDeviceDimenBylastManydays(int lastdays,final String dimenkey) { Logger logger=Logger.getLogger("flushDeviceDimenBylastManydays"); long startTime=System.currentTimeMillis(); String start_daystr=DateUtil.DateBefAft(-(lastdays), "yyyy-MM-dd"); String end_daystr=DateUtil.DateBefAft(0, "yyyy-MM-dd"); String start_datestr=start_daystr+" 00:00:00"; String end_datestr=end_daystr+" 23:59:59"; Date startdate=DateUtil.parseStringToDate(start_datestr); Date enddate=DateUtil.parseStringToDate(end_datestr); long act_starttime=(System.currentTimeMillis()-lastdays*24*3600*1000l)/1000; log.debug("Call MYSQL flushDeviceDimenBylastdays start_daystr["+start_daystr+"]startdate.getTime()["+startdate.getTime()+"] "); log.debug("Call MYSQL flushDeviceDimenBylastdays end_daystr["+end_daystr+"]enddate.getTime()["+enddate.getTime()+"] "); log.debug("Call MYSQL flushDeviceDimenBylastdays act_starttime["+act_starttime+"] "); List list=new ArrayList(); List batchInsertlist=new ArrayList(); //查询出当前维度信息表dimenkey对应的dimen_value集合: String querydimenvalue_sql = "select dimen_value from device_dimen_info where dimen_key='"+dimenkey+"';"; List dimenvaluelist=new ArrayList(); try { dimenvaluelist = getJdbcTemplateForPushmarketing().query(querydimenvalue_sql,new RowMapper() { public Object mapRow(ResultSet rs, int rowNum) throws SQLException { String dv=rs.getString("dimen_value"); return dv; } }); } catch (Exception e) { throw new PsbDaoException(e); } //按最近X天范围,新增/更新维度信息(活跃设备数) try { String sql = "select "+dimenkey+" ,count(*) as act_devicenum from push_device_info where UNIX_TIMESTAMP(modifydate)>? and UNIX_TIMESTAMP(modifydate) "+(startdate.getTime())/1000+" and UNIX_TIMESTAMP(modifydate)<"+(enddate.getTime())/1000+" group by "+dimenkey+";"; log.debug("Call MYSQL flushDeviceDimenBylastdays sql["+sql+"]"); } logger.debug("Call MYSQL flushDeviceDimenBylastdays sql["+sql+"]"); logger.debug("Call MYSQL flushDeviceDimenBylastdays cost["+(System.currentTimeMillis()-startTime)+"]ms"); if (list!=null&&list.size() > 0) { for(DeviceDimenInfo ddi:list){ if(ddi!=null){ if(!getDeviceDimenInfo(ddi)){ //如果数据库不存在该项维度信息,则添加至批量插入维度信息List batchInsertlist.add(ddi); }else { //否则,批量update维度信息活跃设备数。 updateDeviceDimen(ddi); } } } } //保存新增维度信息 saveDeviceDimenlist(batchInsertlist); //删除不复存在的维度信息nowdimenkeylist[now]:dimenkeylist[all] List nowdimenvaluelist=new ArrayList(); //整理当前维度信息 if (list!=null&&list.size() > 0) { for(DeviceDimenInfo ddi:list){ if(ddi!=null && ddi.getDimen_value()!=null && !StringUtils.isBlank(ddi.getDimen_value())){ nowdimenvaluelist.add(ddi.getDimen_value()); } } } if (nowdimenvaluelist!=null&&nowdimenvaluelist.size() > 0) { for(String dv:dimenvaluelist){ if(!nowdimenvaluelist.contains(dv)){ delDeviceDimen(dimenkey,dv); } } } return true; } catch (Exception e) { throw new PsbDaoException(e); } //return list; } /* `id` varchar(32) NOT NULL, `dimen_key` varchar(20) DEFAULT NULL, `dimen_value` varchar(100) DEFAULT NULL, `all_devicenum` int(32) DEFAULT NULL, `act_devicenum` int(32) DEFAULT NULL, `p_htmlfilepath` varchar(255) DEFAULT NULL, `createdate` datetime DEFAULT NULL, `modifydate` datetime DEFAULT NULL, PRIMARY KEY (`id`) */ public Boolean saveDeviceDimenlist(final List list) { Logger logger=Logger.getLogger("saveDeviceDimenlist"); long startTime=System.currentTimeMillis(); try { String sql = "insert into device_dimen_info(id,dimen_key,dimen_value,act_devicenum,all_devicenum,p_htmlfilepath) values(?,?,?,?,?,?)"; getJdbcTemplateForPushmarketing().batchUpdate(sql, new BatchPreparedStatementSetter() { @SuppressWarnings("unchecked") private Iterator it = list.iterator(); public int getBatchSize() { return list.size(); } public void setValues(PreparedStatement ps, int i) throws SQLException { if (it.hasNext()) { DeviceDimenInfo ddi = (DeviceDimenInfo) it.next(); int j = 1; ps.setString(j++, CommonUtil.getUUID()); ps.setString(j++, ddi.getDimen_key()); if(ddi.getDimen_value()==null||"null".equals(ddi.getDimen_value())){ ddi.setDimen_value(""); } ps.setString(j++, ddi.getDimen_value()); ps.setInt(j++, ddi.getAct_devicenum()); ps.setInt(j++, ddi.getAll_devicenum()); ps.setString(j++, ""); if(log.isDebugEnabled()){ String sql="insert into device_dimen_info("+ddi.getDimen_key()+","+ddi.getDimen_value()+","+ddi.getAct_devicenum()+");"; log.debug("insert DeviceDimen sql["+sql+"]"); } } } }); logger.debug("Call MYSQL saveDeviceDimenlist cost["+(System.currentTimeMillis()-startTime)+"]ms"); return true; } catch (Exception e) { throw new PsbDaoException(e); } } public Boolean updateDeviceDimen(DeviceDimenInfo ddi) { Logger logger=Logger.getLogger("updateDeviceDimen"); long startTime=System.currentTimeMillis(); try { String updateSql = "update device_dimen_info set act_devicenum=? where dimen_key=? and dimen_value=? ;"; int result=getJdbcTemplateForPushmarketing().update(updateSql, new Object[] { ddi.getAct_devicenum(),ddi.getDimen_key() ,ddi.getDimen_value()}); if(log.isDebugEnabled()){ updateSql="update device_dimen_info set act_devicenum="+ddi.getAct_devicenum()+" where Dimen_key="+ddi.getDimen_key()+"Dimen_value="+ddi.getDimen_value()+";"; log.debug("Call MYSQL updateDeviceDimen sql["+updateSql+"]"); } logger.debug("Call MYSQL updateDeviceDimen cost["+(System.currentTimeMillis()-startTime)+"]ms"); return result>0; } catch (Exception e) { throw new PsbDaoException(e); } } public Boolean delDeviceDimen(String dimenkey,String dimen_value) { Logger logger=Logger.getLogger("delDeviceDimen"); long startTime=System.currentTimeMillis(); try { String delSql = "delete from device_dimen_info where dimen_key=? and dimen_value=? ;"; int result=getJdbcTemplateForPushmarketing().update(delSql,new Object[] {dimenkey,dimen_value}); if(log.isDebugEnabled()){ delSql="delete from device_dimen_info where dimen_key="+dimenkey+" and dimen_value="+dimen_value+";"; log.debug("Call MYSQL delDeviceDimen sql["+delSql+"]"); } logger.debug("Call MYSQL delDeviceDimen cost["+(System.currentTimeMillis()-startTime)+"]ms"); return result>0; } catch (Exception e) { throw new PsbDaoException(e); } } /* `id` varchar(32) NOT NULL, `dimen_key` varchar(20) DEFAULT NULL, `dimen_value` varchar(100) DEFAULT NULL, `all_devicenum` int(32) DEFAULT NULL, `act_devicenum` int(32) DEFAULT NULL, `p_htmlfilepath` varchar(255) DEFAULT NULL, `createdate` datetime DEFAULT NULL, `modifydate` datetime DEFAULT NULL, PRIMARY KEY (`id`) */ public boolean getDeviceDimenInfo(DeviceDimenInfo deviceDimenInfo) { Logger logger=Logger.getLogger("getDeviceDimenInfo"); long startTime=System.currentTimeMillis(); try { //暂时未持久化apn、operator_code、charge_status等动态信息,只在缓存中更新 String sql = "select count(*) from device_dimen_info where dimen_key =? and dimen_value =? ;"; int result=getJdbcTemplateForPushmarketing().queryForInt(sql,new Object[] {deviceDimenInfo.getDimen_key(),deviceDimenInfo.getDimen_value()}); logger.debug("Call MYSQL getDeviceDimenInfo sql["+sql+"]"); logger.debug("Call MYSQL getDeviceDimenInfo cost["+(System.currentTimeMillis()-startTime)+"]ms"); return result>0; } catch (Exception e) { throw new PsbDaoException(e); } } /* * reportType: --1:日报 7:周报 10:sid接受消息分布统计 11:sid到达消息分布统计 * */ public long savePushIncatorToDB(int reportType,String[] pushindicatorargs) { //保存至数据库psb_push_indicator表 // create table psb_push_indicator // ( // id bigint not null auto_increment, // indicator_type int, --1:日报 7:周报 10:sid接受消息分布统计 11:sid到达消息分布统计 // commit_time bigint not null, // devices_allcnt bigint, // devices_newcnt bigint, // devices_activitycnt bigint, // receivedmsgs_allcnt bigint, // dealmsgs_allcnt bigint, // arrivedmsgs_allcnt bigint, // tianqi_msgs_cnt bigint, // neirong_msgs_cnt bigint, // qiyeyoujian_msgs_cnt bigint, // gexinghuapush_msgs_cnt bigint, // leshangdian_msgs_cnt bigint, // gerenyoujian_msgs_cnt bigint, // rsys001_msgs_cnt bigint, // qita_msgs_cnt bigint, // singlepoll_devices_cnt bigint, // primary key (id), // KEY `idx_commit_time` (`commit_time`) // )ENGINE=InnoDB; long commit_time=System.currentTimeMillis(); StringBuffer sqlsb=new StringBuffer("insert into psb_push_indicator(indicator_type,commit_time,devices_allcnt,devices_newcnt,devices_activitycnt,receivedmsgs_allcnt,dealmsgs_allcnt,arrivedmsgs_allcnt,tianqi_msgs_cnt,neirong_msgs_cnt,qiyeyoujian_msgs_cnt,gexinghuapush_msgs_cnt,leshangdian_msgs_cnt,gerenyoujian_msgs_cnt,rsys001_msgs_cnt,qita_msgs_cnt,singlepoll_devices_cnt) values("); sqlsb.append(reportType); sqlsb.append(","); sqlsb.append(commit_time); sqlsb.append(","); for(int i=0;i 0; } catch (Exception e) { throw new PsbDaoException(e); } } /** * @param deviceInfoVOList * @return * @author */ public boolean saveDeviceInfoList(List deviceInfoVOList) {// String insertSql = "insert into push_device_info(pid,device_model,deviceid_type,deviceid,device_imsi,os_version,cust_version," + "pe_version,pe_vercode,pe_pkgname,netaccess_type,ip,operation_type,city_name,createdate,modifydate ) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);"; try { getJdbcTemplateForPushmarketing().batchUpdate(insertSql, new MyBatchPreparedStatementSetter(deviceInfoVOList)); } catch (org.springframework.dao.DataAccessException e) { e.printStackTrace(); } return true; } /** * @param deviceInfoVOList * @author liaozl1 */ public void saveBatchDeviceInfo(List deviceInfoVOList) { long startTime = System.currentTimeMillis(); StringBuffer batchSql = new StringBuffer(); int count = 0; batchSql .append("insert into push_device_info( pid,device_model,deviceid_type,deviceid,device_imsi,os_version,cust_version,"); batchSql .append("pe_version,pe_vercode,pe_pkgname,netaccess_type,ip,operation_type,city_name,createdate,modifydate ) values"); if (deviceInfoVOList != null && deviceInfoVOList.size() != 0) { int size = deviceInfoVOList.size(); for (DeviceInfoVO it : deviceInfoVOList) { if (it.getCreatedate() != null) { batchSql.append("(" + it.getPid() + ",'" + it.getDevice_model() + "','" + it.getDeviceid_type() + "','" + it.getDeviceid() + "','" + it.getDevice_imsi() + "','" + it.getOs_version() + "','" + it.getCust_version() + "','" + it.getPe_version() + "','" + it.getPe_vercode() + "','" + it.getPe_pkgname() + "','" + it.getNetaccess_type() + "','" + it.getIp() + "','" + it.getOperation_type() + "','" + it.getCity_name() + "','" + sdf.format(it.getCreatedate()) + "','" + sdf.format(it.getCreatedate()) + "')"); if (count != size - 1) { batchSql.append(","); } count++; } else { batchSql.append("(" + it.getPid() + ",'" + it.getDevice_model() + "','" + it.getDeviceid_type() + "','" + it.getDeviceid() + "','" + it.getDevice_imsi() + "','" + it.getOs_version() + "','" + it.getCust_version() + "','" + it.getPe_version() + "','" + it.getPe_vercode() + "','" + it.getPe_pkgname() + "','" + it.getNetaccess_type() + "','" + it.getIp() + "','" + it.getOperation_type() + "','" + it.getCity_name() + "','" + "','" + "')"); if (count != size - 1) { batchSql.append(","); } count++; } } getJdbcTemplateForPushmarketing().execute(batchSql.toString()); } log.info("sqls : " + batchSql.toString()); log.info("Uss Uss2PushDeviceInfoList cost[" + (System.currentTimeMillis() - startTime) + "]ms"); } public void test2(List deviceInfoVOList) { long startTime = System.currentTimeMillis(); List sqlList = new ArrayList(); String[] sqls = null; for (DeviceInfoVO it : deviceInfoVOList) { StringBuffer batchSql = new StringBuffer(); batchSql .append("insert into push_device_info( pid,device_model,deviceid_type,deviceid,device_imsi,os_version,cust_version,"); batchSql .append("pe_version,pe_vercode,pe_pkgname,netaccess_type,ip,operation_type,city_name,createdate,modifydate ) values"); batchSql.append("(" + it.getPid() + ",'" + it.getDevice_model() + "','" + it.getDeviceid_type() + "','" + it.getDeviceid() + "','" + it.getDevice_imsi() + "','" + it.getOs_version() + "','" + it.getCust_version() + "','" + it.getPe_version() + "','" + it.getPe_vercode() + "','" + it.getPe_pkgname() + "','" + it.getNetaccess_type() + "','" + it.getIp() + "','" + it.getOperation_type() + "','" + it.getCity_name() + "','" + sdf.format(it.getCreatedate()) + "','" + sdf.format(it.getCreatedate()) + "')"); sqlList.add(batchSql.toString()); } if (sqlList != null && sqlList.size() != 0) { sqls = new String[sqlList.size()]; sqls = (String[]) sqlList.toArray(); } getJdbcTemplateForPushmarketing().batchUpdate(sqls); log.debug("Uss Uss2PushDeviceInfoList"); log.debug("Uss Uss2PushDeviceInfoList cost[" + (System.currentTimeMillis() - startTime) + "]ms"); } public void test1(List deviceInfoVOList) { long startTime = System.currentTimeMillis(); List sqlList = new ArrayList(); String[] sqls = null; for (DeviceInfoVO it : deviceInfoVOList) { StringBuffer batchSql = new StringBuffer(); batchSql .append("insert into push_device_info( pid,device_model,deviceid_type,deviceid,device_imsi,os_version,cust_version,"); batchSql .append("pe_version,pe_vercode,pe_pkgname,netaccess_type,ip,operation_type,city_name,createdate,modifydate ) values"); batchSql.append("(" + it.getPid() + ",'" + it.getDevice_model() + "','" + it.getDeviceid_type() + "','" + it.getDeviceid() + "','" + it.getDevice_imsi() + "','" + it.getOs_version() + "','" + it.getCust_version() + "','" + it.getPe_version() + "','" + it.getPe_vercode() + "','" + it.getPe_pkgname() + "','" + it.getNetaccess_type() + "','" + it.getIp() + "','" + it.getOperation_type() + "','" + it.getCity_name() + "','" + sdf.format(it.getCreatedate()) + "','" + sdf.format(it.getCreatedate()) + "')"); sqlList.add(batchSql.toString()); } if (sqlList != null && sqlList.size() != 0) { sqls = new String[sqlList.size()]; sqls = (String[]) sqlList.toArray(); } getJdbcTemplateForPushmarketing().batchUpdate(sqls); log.debug("Uss Uss2PushDeviceInfoList"); log.debug("Uss Uss2PushDeviceInfoList cost[" + (System.currentTimeMillis() - startTime) + "]ms"); } class MyBatchPreparedStatementSetter implements BatchPreparedStatementSetter { final List temList; /** 通过构造函数把要插入的数据传递进来处理 */ public MyBatchPreparedStatementSetter(List list) { temList = list; } public int getBatchSize() { return temList.size(); } @Override public void setValues(PreparedStatement ps, int i) throws SQLException { // TODO Auto-generated method stub DeviceInfoVO deviceInfoVO = (DeviceInfoVO) temList.get(i); ps.setLong(1, deviceInfoVO.getPid()); ps.setString(2, deviceInfoVO.getDevice_model()); ps.setString(3, deviceInfoVO.getDeviceid_type()); ps.setString(4, deviceInfoVO.getDeviceid()); ps.setString(5, deviceInfoVO.getDevice_imsi()); ps.setString(6, deviceInfoVO.getOs_version()); ps.setString(7, deviceInfoVO.getCust_version()); ps.setString(8, deviceInfoVO.getPe_version()); ps.setString(9, deviceInfoVO.getPe_vercode()); ps.setString(10, deviceInfoVO.getPe_pkgname()); ps.setString(11, deviceInfoVO.getNetaccess_type()); ps.setString(12, deviceInfoVO.getIp()); ps.setString(13, deviceInfoVO.getOperation_type()); ps.setString(14, deviceInfoVO.getCity_name()); ps.setString(15, deviceInfoVO.getCreatedate().toString()); ps.setString(16, deviceInfoVO.getCreatedate().toString()); } } }

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:程序进程线程(程序进程线程的理解)
下一篇:raylib是一个简单易用的库,用于学习电子游戏程序设计
相关文章

 发表评论

暂时没有评论,来抢沙发吧~