21 回复
日志:
DEBUG] 2017-03-10 04:58:36 (UrlMappingImpl.java:get:101)
Found mapping for [GET] path=/rain/testMethod : RainModule.testMethod(RainModule.java:236)
DEBUG] 2017-03-10 04:58:36 (NutIoc.java:get:151)
Get 'rainModule'<class com.beyondb.rainsnow.modules.RainModule>
DEBUG] 2017-03-10 04:58:36 (NutDaoExecutor.java:printSQL:388)
SELECT * FROM stationdetail
DEBUG] 2017-03-10 04:58:36 (NutDaoExecutor.java:exec:97)
SQLException
java.sql.SQLNonTransientConnectionException: 与服务器的连接已被中止。
at com.beyondb.gcf.util.SqlExType.getSqlEx(SqlExType.java:97)
at com.beyondb.gcf.util.SqlExFactory.get(SqlExFactory.java:96)
at com.beyondb.gcf.jdbc.DrvObj.readError(DrvObj.java:852)
at com.beyondb.gcf.jdbc.JdbcStmt.readError(JdbcStmt.java:2814)
at com.beyondb.gcf.jdbc.DrvObj.readResults(DrvObj.java:636)
at com.beyondb.gcf.jdbc.JdbcStmt.readResults(JdbcStmt.java:2711)
at com.beyondb.gcf.jdbc.JdbcStmt.readResults(JdbcStmt.java:2662)
at com.beyondb.gcf.jdbc.JdbcStmt.exec(JdbcStmt.java:1569)
at com.beyondb.gcf.jdbc.JdbcStmt.executeQuery(JdbcStmt.java:472)
at org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:208)
at org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:208)
at org.nutz.dao.impl.sql.run.NutDaoExecutor._runSelect(NutDaoExecutor.java:246)
at org.nutz.dao.impl.sql.run.NutDaoExecutor.exec(NutDaoExecutor.java:53)
at org.nutz.dao.DaoInterceptorChain.doChain(DaoInterceptorChain.java:66)
at org.nutz.dao.impl.interceptor.DaoLogInterceptor.filter(DaoLogInterceptor.java:22)
at org.nutz.dao.DaoInterceptorChain.doChain(DaoInterceptorChain.java:64)
at org.nutz.dao.DaoInterceptorChain.invoke(DaoInterceptorChain.java:139)
at org.nutz.dao.impl.sql.run.NutDaoRunner.runCallback(NutDaoRunner.java:147)
at org.nutz.dao.impl.sql.run.NutDaoRunner._runWithoutTransaction(NutDaoRunner.java:114)
at org.nutz.dao.impl.sql.run.NutDaoRunner._run(NutDaoRunner.java:81)
at org.nutz.dao.impl.sql.run.NutDaoRunner.run(NutDaoRunner.java:70)
at org.nutz.dao.impl.DaoSupport.run(DaoSupport.java:239)
at org.nutz.dao.impl.DaoSupport._exec(DaoSupport.java:247)
at org.nutz.dao.impl.NutDao.query(NutDao.java:464)
at org.nutz.dao.impl.NutDao.query(NutDao.java:469)
at com.beyondb.rainsnow.services.RainSnowStatisticsJobService.generateRainData(RainSnowStatisticsJobService.java:50)
at com.beyondb.rainsnow.modules.RainModule.testMethod(RainModule.java:236)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.nutz.mvc.impl.processor.MethodInvokeProcessor.process(MethodInvokeProcessor.java:25)
at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
at org.nutz.mvc.impl.processor.AdaptorProcessor.process(AdaptorProcessor.java:33)
at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
at org.nutz.mvc.impl.processor.ActionFiltersProcessor.process(ActionFiltersProcessor.java:58)
at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
at org.nutz.integration.shiro.NutShiroProcessor.process(NutShiroProcessor.java:126)
at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
at org.nutz.mvc.impl.processor.ModuleProcessor.process(ModuleProcessor.java:123)
at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
at org.nutz.mvc.impl.processor.EncodingProcessor.process(EncodingProcessor.java:27)
at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
at org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor.process(UpdateRequestAttributesProcessor.java:15)
at org.nutz.mvc.impl.NutActionChain.doChain(NutActionChain.java:44)
at org.nutz.mvc.impl.ActionInvoker.invoke(ActionInvoker.java:67)
at org.nutz.mvc.ActionHandler.handle(ActionHandler.java:31)
at org.nutz.mvc.NutFilter.doFilter(NutFilter.java:198)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:217)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:673)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
WARN] 2017-03-10 04:58:36 (FailProcessor.java:process:28)
Error@/rain/testMethod :
org.nutz.dao.DaoException: !Nutz SQL Error: 'SELECT * FROM stationdetail '
PreparedStatement:
'SELECT * FROM stationdetail '
CaseMessage=与服务器的连接已被中止。
at org.nutz.dao.impl.sql.run.NutDaoExecutor.exec(NutDaoExecutor.java:104)
at org.nutz.dao.DaoInterceptorChain.doChain(DaoInterceptorChain.java:66)
at org.nutz.dao.impl.interceptor.DaoLogInterceptor.filter(DaoLogInterceptor.java:22)
at org.nutz.dao.DaoInterceptorChain.doChain(DaoInterceptorChain.java:64)
at org.nutz.dao.DaoInterceptorChain.invoke(DaoInterceptorChain.java:139)
at org.nutz.dao.impl.sql.run.NutDaoRunner.runCallback(NutDaoRunner.java:147)
at org.nutz.dao.impl.sql.run.NutDaoRunner._runWithoutTransaction(NutDaoRunner.java:114)
at org.nutz.dao.impl.sql.run.NutDaoRunner._run(NutDaoRunner.java:81)
at org.nutz.dao.impl.sql.run.NutDaoRunner.run(NutDaoRunner.java:70)
at org.nutz.dao.impl.DaoSupport.run(DaoSupport.java:239)
at org.nutz.dao.impl.DaoSupport._exec(DaoSupport.java:247)
at org.nutz.dao.impl.NutDao.query(NutDao.java:464)
at org.nutz.dao.impl.NutDao.query(NutDao.java:469)
at com.beyondb.rainsnow.services.RainSnowStatisticsJobService.generateRainData(RainSnowStatisticsJobService.java:50)
at com.beyondb.rainsnow.modules.RainModule.testMethod(RainModule.java:236)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.nutz.mvc.impl.processor.MethodInvokeProcessor.process(MethodInvokeProcessor.java:25)
at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
at org.nutz.mvc.impl.processor.AdaptorProcessor.process(AdaptorProcessor.java:33)
at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
at org.nutz.mvc.impl.processor.ActionFiltersProcessor.process(ActionFiltersProcessor.java:58)
at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
at org.nutz.integration.shiro.NutShiroProcessor.process(NutShiroProcessor.java:126)
at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
at org.nutz.mvc.impl.processor.ModuleProcessor.process(ModuleProcessor.java:123)
at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
at org.nutz.mvc.impl.processor.EncodingProcessor.process(EncodingProcessor.java:27)
at org.nutz.mvc.impl.processor.AbstractProcessor.doNext(AbstractProcessor.java:44)
at org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor.process(UpdateRequestAttributesProcessor.java:15)
at org.nutz.mvc.impl.NutActionChain.doChain(NutActionChain.java:44)
at org.nutz.mvc.impl.ActionInvoker.invoke(ActionInvoker.java:67)
at org.nutz.mvc.ActionHandler.handle(ActionHandler.java:31)
at org.nutz.mvc.NutFilter.doFilter(NutFilter.java:198)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:217)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:673)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.sql.SQLNonTransientConnectionException: 与服务器的连接已被中止。
at com.beyondb.gcf.util.SqlExType.getSqlEx(SqlExType.java:97)
at com.beyondb.gcf.util.SqlExFactory.get(SqlExFactory.java:96)
at com.beyondb.gcf.jdbc.DrvObj.readError(DrvObj.java:852)
at com.beyondb.gcf.jdbc.JdbcStmt.readError(JdbcStmt.java:2814)
at com.beyondb.gcf.jdbc.DrvObj.readResults(DrvObj.java:636)
at com.beyondb.gcf.jdbc.JdbcStmt.readResults(JdbcStmt.java:2711)
at com.beyondb.gcf.jdbc.JdbcStmt.readResults(JdbcStmt.java:2662)
at com.beyondb.gcf.jdbc.JdbcStmt.exec(JdbcStmt.java:1569)
at com.beyondb.gcf.jdbc.JdbcStmt.executeQuery(JdbcStmt.java:472)
at org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:208)
at org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:208)
at org.nutz.dao.impl.sql.run.NutDaoExecutor._runSelect(NutDaoExecutor.java:246)
at org.nutz.dao.impl.sql.run.NutDaoExecutor.exec(NutDaoExecutor.java:53)
... 62 more
代码:
public boolean generateRainData(){
boolean flag = false;
//查询所有站点,并且拼接集合
List<Stationdetail> stationList = this.dao().query(Stationdetail.class, null);
//站名以及站点对应集合
Map<BigInteger,Stationdetail> stationMap = new HashMap<BigInteger,Stationdetail>();
for(Stationdetail station : stationList){
stationMap.put(station.getSno(), station);
}
//先查询一下这三张表是否有数据,如果有的话做更新操作,没有的话进行数据插入操作
String nowDate = TimeUtil.dateToString(new Date()).split(" ")[0];//格式为yyyy-MM-dd
String nowMonthDate = nowDate.substring(0, nowDate.lastIndexOf("-"));//格式为yyyy-MM
String nowYearDate = nowDate.split("-")[0];//格式为yyyy
String firstMonthDate = getFirstDay();//当月的第一天
String lastMonthDate = getLastDay();//当月的最后一天
//查询当日雨量数据条数
int dayDataCount = this.dao().count("hy_rain_d", Cnd.where("checktime", "=", nowDate));
int index_dayCount = this.dao().count("hy_rain_d",null);
//查询当月雨量数据条数
int monthDataCount = this.dao().count("hy_rain_m", Cnd.where("checktime", "=", nowMonthDate));
int index_monthCount = this.dao().count("hy_rain_m",null);
//查询当年雨量数据条数
int yearDataCount = this.dao().count("hy_rain_y", Cnd.where("checktime", "=", nowYearDate));
int index_yearCount = this.dao().count("hy_rain_y",null);
//获取昨日八点的具体日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
c.add(Calendar.DATE, - 1);
Date date = c.getTime();
String beginTime = sdf.format(date)+" 08:00:00";
//获取当前日期时间加一小时具体日期
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
Calendar c1 = Calendar.getInstance();
c1.add(Calendar.HOUR_OF_DAY, 0);
Date date1 = c1.getTime();
String endTime = sdf1.format(date1)+" 08:00:00";
//调用方法返回数据
List<Record> list = rainOpService.getStationRainPv(beginTime, endTime);
//调用方法返回月雨量数据
List<Record> monthList = getPvListData(getRainSnowPvListData(firstMonthDate,lastMonthDate,"hy_rain_d"),stationMap);
//调用方法返回年雨量数据
List<Record> yearList = getPvListData(getRainSnowPvListData(nowDate.split("-")[0]+"-01",nowDate.split("-")[0]+"-12","hy_rain_m"),stationMap);
if(dayDataCount<=0){//如果没有数据则添加一条数据
//获取所有站点当天的雨量情况
List<Record> rainPvDataList = getPvListData(list,stationMap);
//进行批量插入操作
Sql addBatchSql = Sqls.create("insert into hy_rain_d (dataid,checktime,sno,rainfall) values(@dataid,@checktime,@sno,@rainfall)");
for (Record record:rainPvDataList) {
index_dayCount++;
addBatchSql.params().set("dataid",new BigInteger(record.getString("sno")+index_dayCount)).set("checktime", nowDate).set("sno", new BigInteger(record.getString("sno"))).set("rainfall", Double.parseDouble(record.getString("pv")));
addBatchSql.addBatch();
}
//如果数据量多的话可以约定好多少次进行一次批量操作
this.dao().execute(addBatchSql);
flag = true;
}else{//存在数据就进行更新
//获取所有站点当天的雨量情况
List<Record> rainPvDataList = getPvListData(list,stationMap);
//进行批量插入操作
Sql updateBatchSql = Sqls.create("update hy_rain_d set rainfall=@rainfall where checktime=@checktime and sno=@sno");
for (Record record:rainPvDataList) {
updateBatchSql.params().set("checktime", nowDate).set("sno", new BigInteger(record.getString("sno"))).set("rainfall", Double.parseDouble(record.getString("pv")));
updateBatchSql.addBatch();
}
//如果数据量多的话可以约定好多少次进行一次批量操作
this.dao().execute(updateBatchSql);
flag = true;
}
if(monthDataCount<=0){//插入月数据
Sql addBatchSql = Sqls.create("insert into hy_rain_m (dataid,checktime,sno,rainfall) values(@dataid,@checktime,@sno,@rainfall)");
//把查询月的方法提出去
for(Record record:monthList){
index_monthCount++;
addBatchSql.params().set("dataid",new BigInteger(record.getString("sno")+index_monthCount)).set("checktime", nowMonthDate).set("sno", new BigInteger(record.getString("sno"))).set("rainfall", Double.parseDouble(record.getString("pv")));
addBatchSql.addBatch();
}
this.dao().execute(addBatchSql);
flag = true;
}else{//更新月数据
Sql updateBatchSql = Sqls.create("update hy_rain_m set rainfall=@rainfall where checktime=@checktime and sno=@sno");
for(Record record:monthList){
updateBatchSql.params().set("checktime", nowMonthDate).set("sno", new BigInteger(record.getString("sno"))).set("rainfall", Double.parseDouble(record.getString("pv")));
updateBatchSql.addBatch();
}
this.dao().execute(updateBatchSql);
flag = true;
}
if(yearDataCount<=0){//插入年数据
Sql addBatchSql = Sqls.create("insert into hy_rain_y (dataid,checktime,sno,rainfall) values(@dataid,@checktime,@sno,@rainfall)");
//把查询月的方法提出去
for(Record record:yearList){
index_yearCount++;
addBatchSql.params().set("dataid",new BigInteger(record.getString("sno")+index_yearCount)).set("checktime",nowYearDate).set("sno", new BigInteger(record.getString("sno"))).set("rainfall", Double.parseDouble(record.getString("pv")));
addBatchSql.addBatch();
}
this.dao().execute(addBatchSql);
flag = true;
}else{//更新年数据
Sql updateBatchSql = Sqls.create("update hy_rain_y set rainfall=@rainfall where checktime=@checktime and sno=@sno");
for(Record record:yearList){
updateBatchSql.params().set("checktime", nowYearDate).set("sno", new BigInteger(record.getString("sno"))).set("rainfall", Double.parseDouble(record.getString("pv")));
updateBatchSql.addBatch();
}
this.dao().execute(updateBatchSql);
flag = true;
}
return flag;
}
public boolean generateRainData(){
boolean flag = false;
//查询所有站点,并且拼接集合
List<Stationdetail> stationList = this.dao().query(Stationdetail.class, null);
//站名以及站点对应集合
Map<BigInteger,Stationdetail> stationMap = new HashMap<BigInteger,Stationdetail>();
for(Stationdetail station : stationList){
stationMap.put(station.getSno(), station);
}
//先查询一下这三张表是否有数据,如果有的话做更新操作,没有的话进行数据插入操作
String nowDate = TimeUtil.dateToString(new Date()).split(" ")[0];//格式为yyyy-MM-dd
String nowMonthDate = nowDate.substring(0, nowDate.lastIndexOf("-"));//格式为yyyy-MM
String nowYearDate = nowDate.split("-")[0];//格式为yyyy
String firstMonthDate = getFirstDay();//当月的第一天
String lastMonthDate = getLastDay();//当月的最后一天
//查询当日雨量数据条数
int dayDataCount = this.dao().count("hy_rain_d", Cnd.where("checktime", "=", nowDate));
int index_dayCount = this.dao().count("hy_rain_d",null);
//查询当月雨量数据条数
int monthDataCount = this.dao().count("hy_rain_m", Cnd.where("checktime", "=", nowMonthDate));
int index_monthCount = this.dao().count("hy_rain_m",null);
//查询当年雨量数据条数
int yearDataCount = this.dao().count("hy_rain_y", Cnd.where("checktime", "=", nowYearDate));
int index_yearCount = this.dao().count("hy_rain_y",null);
//获取昨日八点的具体日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
c.add(Calendar.DATE, - 1);
Date date = c.getTime();
String beginTime = sdf.format(date)+" 08:00:00";
//获取当前日期时间加一小时具体日期
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
Calendar c1 = Calendar.getInstance();
c1.add(Calendar.HOUR_OF_DAY, 0);
Date date1 = c1.getTime();
String endTime = sdf1.format(date1)+" 08:00:00";
//调用方法返回数据
List<Record> list = rainOpService.getStationRainPv(beginTime, endTime);
//调用方法返回月雨量数据
List<Record> monthList = getPvListData(getRainSnowPvListData(firstMonthDate,lastMonthDate,"hy_rain_d"),stationMap);
//调用方法返回年雨量数据
List<Record> yearList = getPvListData(getRainSnowPvListData(nowDate.split("-")[0]+"-01",nowDate.split("-")[0]+"-12","hy_rain_m"),stationMap);
if(dayDataCount<=0){//如果没有数据则添加一条数据
//获取所有站点当天的雨量情况
List<Record> rainPvDataList = getPvListData(list,stationMap);
//进行批量插入操作
Sql addBatchSql = Sqls.create("insert into hy_rain_d (dataid,checktime,sno,rainfall) values(@dataid,@checktime,@sno,@rainfall)");
for (Record record:rainPvDataList) {
index_dayCount++;
addBatchSql.params().set("dataid",new BigInteger(record.getString("sno")+index_dayCount)).set("checktime", nowDate).set("sno", new BigInteger(record.getString("sno"))).set("rainfall", Double.parseDouble(record.getString("pv")));
addBatchSql.addBatch();
}
//如果数据量多的话可以约定好多少次进行一次批量操作
this.dao().execute(addBatchSql);
flag = true;
}else{//存在数据就进行更新
//获取所有站点当天的雨量情况
List<Record> rainPvDataList = getPvListData(list,stationMap);
//进行批量插入操作
Sql updateBatchSql = Sqls.create("update hy_rain_d set rainfall=@rainfall where checktime=@checktime and sno=@sno");
for (Record record:rainPvDataList) {
updateBatchSql.params().set("checktime", nowDate).set("sno", new BigInteger(record.getString("sno"))).set("rainfall", Double.parseDouble(record.getString("pv")));
updateBatchSql.addBatch();
}
//如果数据量多的话可以约定好多少次进行一次批量操作
this.dao().execute(updateBatchSql);
flag = true;
}
if(monthDataCount<=0){//插入月数据
Sql addBatchSql = Sqls.create("insert into hy_rain_m (dataid,checktime,sno,rainfall) values(@dataid,@checktime,@sno,@rainfall)");
//把查询月的方法提出去
for(Record record:monthList){
index_monthCount++;
addBatchSql.params().set("dataid",new BigInteger(record.getString("sno")+index_monthCount)).set("checktime", nowMonthDate).set("sno", new BigInteger(record.getString("sno"))).set("rainfall", Double.parseDouble(record.getString("pv")));
addBatchSql.addBatch();
}
this.dao().execute(addBatchSql);
flag = true;
}else{//更新月数据
Sql updateBatchSql = Sqls.create("update hy_rain_m set rainfall=@rainfall where checktime=@checktime and sno=@sno");
for(Record record:monthList){
updateBatchSql.params().set("checktime", nowMonthDate).set("sno", new BigInteger(record.getString("sno"))).set("rainfall", Double.parseDouble(record.getString("pv")));
updateBatchSql.addBatch();
}
this.dao().execute(updateBatchSql);
flag = true;
}
if(yearDataCount<=0){//插入年数据
Sql addBatchSql = Sqls.create("insert into hy_rain_y (dataid,checktime,sno,rainfall) values(@dataid,@checktime,@sno,@rainfall)");
//把查询月的方法提出去
for(Record record:yearList){
index_yearCount++;
addBatchSql.params().set("dataid",new BigInteger(record.getString("sno")+index_yearCount)).set("checktime",nowYearDate).set("sno", new BigInteger(record.getString("sno"))).set("rainfall", Double.parseDouble(record.getString("pv")));
addBatchSql.addBatch();
}
this.dao().execute(addBatchSql);
flag = true;
}else{//更新年数据
Sql updateBatchSql = Sqls.create("update hy_rain_y set rainfall=@rainfall where checktime=@checktime and sno=@sno");
for(Record record:yearList){
updateBatchSql.params().set("checktime", nowYearDate).set("sno", new BigInteger(record.getString("sno"))).set("rainfall", Double.parseDouble(record.getString("pv")));
updateBatchSql.addBatch();
}
this.dao().execute(updateBatchSql);
flag = true;
}
return flag;
}
@wendal 我的dao.js配置如下:
var ds = {
dataSource: {
type: "org.apache.commons.dbcp.BasicDataSource",
events: {
depose: 'close'
},
fields: {
// 请修改下面的数据库连接信息
url: 'jdbc:beyondb://192.168.1.55:II7/shuiwen;auto=multi;TZ=HONG-KONG',
driverClassName: 'com.beyondb.jdbc.BeyondbDriver',
username: 'shuiwen',
password: '123456',
maxActive: 5,
testWhileIdle: true,
testOnBorrow: false,
testOnReturn: false
}
},
dao: {
type: 'org.nutz.dao.impl.NutDao',
args: [{
refer: 'dataSource'
}]
}
};
@wendal 兽总,敢问这个类是哪个包的啊。。。
@wendal 别的配置应该就不用修改了吧?
@wendal 是org.nutz.dao.impl.SimpleDataSource这个类吗?有木有示例啊,兽总,救命啊。。。。
@wendal 谢谢兽总,但是这个类里面并没有支持我们公司自己的数据库驱动,请问还有别的方法吗?真的是连接不够导致的吗?我是不是只能手动写一个连接池了呢?
@wendal 嗯,好的,知道了,兽总,谢谢兽总
@wendal 兽总,我是这么写的,但是在程序运行的还是还是提醒我没有找到驱动类。代码如下:
public class DataSource extends SimpleDataSource{
public DataSource() throws ClassNotFoundException, InstantiationException, IllegalAccessException{
Class<?> clazz = Class.forName("org.nutz.dao.impl.SimpleDataSource");
SimpleDataSource dataSource = (SimpleDataSource) clazz.newInstance();
dataSource.setDriverClassName("com.beyondb.jdbc.BeyondbDriver");
}
}
@wendal 我在js里面配置了之后还是报错,这该怎么办呢?兽总
var ioc = {
dao : {
type : "org.nutz.dao.impl.NutDao",
args : [{refer:"dataSource"}]
},
dataSource : {
type : "org.nutz.dao.impl.SimpleDataSource",
fields : {
jdbcUrl : 'jdbc:beyondb://192.168.1.55:II7/shuiwen;auto=multi;TZ=HONG-KONG',
driverClassName : "com.beyondb.jdbc.BeyondbDriver",
username : 'shuiwen',
password : '123456'
}
}
}
添加回复
请先登陆