当后台查的都是不同的项目时,例如测站编码,所选时间段最大降雨时间,1小时累计降雨量,6小时累计降雨量。。。它们不是在一个集合里面,而是在多个集合里面。
注意下面红色部分。
jsp:
<table style="width:99%;height: 100%">
<tr>
<td style="width:100%;height:18px;color:#000;padding-left: 10px;padding-bottom: 10px;">
当前位置:数据分析->雨情数据->最大时段降雨量
</td>
</tr>
<tr ><td style="width:100%;height:10%;color:#000;padding-left: 10px;padding-bottom: 10px;">
<form method="post" id="queryForm" action="rainmax.do">
<table style="width:98%;color:#000;margin-left: 10px;">
<tr>
<td>
<label>年份</label>
<select id="select_rainmax_year" name="select_rainmax_year" >
<option value="" selected="selected">请选择</option>
<c:forEach var="year" items="${dateList}">
<option value="${year}">${year}</option>
</c:forEach>
</select>
</td>
<td>
<label>站点名称</label>
<select id="select_rainmax_stcd" name="select_rainmax_stcd" value="${stcd}">
<option value="">请选择</option>
<%-- <c:forEach items="${sessionScope.rainmaxinfo}" var="item1">
<option value="${item1.stcd}"> ${item1.stnm}</option>
</c:forEach> --%>
<c:forEach items="${stationstcd}" var="item2">
<option value="${item2.stcd}">${item2.stnm}(${item2.stcd})</option>
</c:forEach>
</select>
</td>
<td>
<label>开始时间</label>
<input type="text" id="tmbegin" name="tmbegin" class="Wdate"
value="${tmbegin}" />
</td>
<td>
<label>结束时间</label>
<input type="text" id="tmend" name="tmend" class="Wdate"
value="${tmend}" />
</td>
<td style="width: 10%">
<!-- <div class="btn query_btn" onclick="getrainmax(this)" /> -->
<div class="btn query_btn" onclick="javaScript:$('#queryForm').submit();" />
</td>
</tr>
</table>
</form>
</td>
</tr>
<tr><td style="width:100%;height:60%;color:#000;padding-left: 10px;padding-bottom: 10px;">
<!-- <div id="mainmax" style="width:99%;height:100%;background: #ffffff;overflow:auto;text-align:center;padding:10px 20px;margin:0 auto"> -->
<div id="mains" style="width:100%;height:100%;background: #ffffff;overflow:auto;text-align: center;">
<table cellspacing="1" width="100%" class="tablesorter"
id="listTable">
<%-- <thead>
<tr>
<th style="display:none">序号</th>
<th>测站编码</th>
<th>测站名称</th>
<th>所选时间段最大降雨量时间</th>
<th>所选时间段最大降雨量</th>
<th>1小时累计降雨量</th>
<th>6小时累计降雨量</th>
<th>12小时累计降雨量</th>
<th>24小时累计降雨量</th>
<th>48小时累计降雨量</th>
<th>72小时累计降雨量</th>
</tr>
</thead>
<c:forEach items="${stationstcd}" var="item">
<tr>
<td>${item.stcd}</td>
<td>${item.stnm}</td>
<td>${item.tm}</td>
<c:forEach items="${rainmaxsall}" var="item">
<td>${item.rain}</td>
</c:forEach>
</tr>
</c:forEach> --%>
<tr>
<td>测站编码</td>
<c:forEach items="${stationstcd}" var="item">
<td>${item.stcd}</td>
</c:forEach>
</tr>
<tr>
<td>测站名称</td>
<c:forEach items="${stationstcd}" var="item">
<td>${item.stnm}</td>
</c:forEach>
</tr>
<tr>
<td>所选时间段最大降雨量时间</td>
<c:forEach items="${alltm0}" var="item">
<td>${item}</td>
</c:forEach>
</tr>
<tr>
<td>所选时间段最大降雨量</td>
<c:forEach items="${allrain0}" var="item">
<td>${item}</td>
</c:forEach>
</tr>
<tr>
<td>1小时累计降雨量</td>
<c:forEach items="${allrain1}" var="item">
<td>${item}</td>
</c:forEach>
</tr>
<tr>
<td>6小时累计降雨量</td>
<c:forEach items="${allrain6}" var="item">
<td>${item}</td>
</c:forEach>
</tr>
<tr>
<td>12小时累计降雨量</td>
<c:forEach items="${allrain12}" var="item">
<td>${item}</td>
</c:forEach>
</tr>
<tr>
<td>24小时累计降雨量</td>
<c:forEach items="${allrain24}" var="item">
<td>${item}</td>
</c:forEach>
</tr>
<tr>
<td>48小时累计降雨量</td>
<c:forEach items="${allrain48}" var="item">
<td>${item}</td>
</c:forEach>
</tr>
<tr>
<td>72小时累计降雨量</td>
<c:forEach items="${allrain72}" var="item">
<td>${item}</td>
</c:forEach>
</tr>
</table>
</div>
</td></tr>
</table>
controller:
@RequestMapping(value = "rainmax")
public ModelAndView rainmax(
@RequestParam(value = "select_rainmax_year", required = false, defaultValue = "") String select_rainmax_year,
@RequestParam(value = "select_rainmax_stcd", required = false, defaultValue = "") String select_rainmax_stcd,
HttpServletRequest request, HttpServletResponse response)
throws java.text.ParseException {
int endYear = 2050;
int beginYear = 1980;
ArrayList list = new ArrayList();
for (int i = endYear; i >= beginYear; i--) {
list.add(i);
}
request.setAttribute("dateList", list);
String tmbegins1 = request.getParameter("tmbegin");
Calendar cal = Calendar.getInstance();
java.util.Date tmbegins2 = cal.getTime();
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date now = new Date();
SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM");
SimpleDateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String nowtime1 = dateFormat1.format( now )+"-01 00:00:00";
String nowtime2 = dateFormat2.format( now );
java.sql.Timestamp tmbegin3 = null;
String tmbegin=null;String tmend=null;;
if (tmbegins1 != null && tmbegins1 != "") {
try {
tmbegins2 = (java.util.Date) sdf1.parse(tmbegins1);
tmbegin3 = new java.sql.Timestamp(tmbegins2.getTime());
tmbegin=tmbegin3.toString();
} catch (java.text.ParseException e) {
e.printStackTrace();
}
}else{
tmbegin=nowtime1;
}
String tmends1 = request.getParameter("tmend");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Date tmends2 = null;
java.sql.Timestamp tmend3 = null;
if (tmends1 != null && tmends1 != "") {
try {
tmends2 = (java.util.Date) sdf1.parse(tmends1);
tmend3 = new java.sql.Timestamp(tmends2.getTime());
tmend=tmend3.toString();
} catch (java.text.ParseException e) {
e.printStackTrace();
}
}else{
tmend=nowtime2;
}
HashMap queryParams = new HashMap();
if (select_rainmax_year != null) {
queryParams.put("year", select_rainmax_year);
}
if (select_rainmax_stcd != null) {
queryParams.put("stcd", select_rainmax_stcd);
}
queryParams.put("stationstcd", queryrainService.querystationstcd(null));
if(!isNull(select_rainmax_stcd)){
queryParams.put("rainmaxs", rainchartService.rainchart(select_rainmax_year,select_rainmax_stcd, tmbegin, tmend));
}
else{
List<Map<String, Object>> all=rainchartService.rainchart(select_rainmax_year,select_rainmax_stcd, tmbegin, tmend);
System.out.println("all:"+all);
List<Double> allrain =new ArrayList();List<String> alltm =new ArrayList();List<String> alltm0 =new ArrayList();
List<Double> allrain0 =new ArrayList();List<Double> allrain1 =new ArrayList();
List<Double> allrain6 =new ArrayList();List<Double> allrain12 =new ArrayList();
List<Double> allrain24 =new ArrayList();List<Double> allrain48 =new ArrayList();
List<Double> allrain72 =new ArrayList();
List<Object> allrains =new ArrayList();
for(int k=0;k<all.size();k++){
String tmtm=(String) all.get(k).get("tm");
alltm.add(tmtm);
}
for(int k=0;k<alltm.size();k=k+7){
alltm0.add(alltm.get(k));
}
System.out.println("alltm"+alltm);
System.out.println("alltm0"+alltm0);
for(int k=0;k<all.size();k++){
BigDecimal rains= (BigDecimal) all.get(k).get("rain");
allrain.add(rains.doubleValue());
}
for(int k=0;k<allrain.size();k=k+7){
BigDecimal rains= (BigDecimal) all.get(k).get("rain");
allrain0.add(allrain.get(k));
}
for(int k=1;k<allrain.size();k=k+7){
BigDecimal rains= (BigDecimal) all.get(k).get("rain");
allrain1.add(allrain.get(k));
}
for(int k=2;k<allrain.size();k=k+7){
BigDecimal rains= (BigDecimal) all.get(k).get("rain");
allrain6.add(allrain.get(k));
}
for(int k=3;k<allrain.size();k=k+7){
BigDecimal rains= (BigDecimal) all.get(k).get("rain");
allrain12.add(allrain.get(k));
}
for(int k=4;k<allrain.size();k=k+7){
BigDecimal rains= (BigDecimal) all.get(k).get("rain");
allrain24.add(allrain.get(k));
}
for(int k=5;k<allrain.size();k=k+7){
BigDecimal rains= (BigDecimal) all.get(k).get("rain");
allrain48.add(allrain.get(k));
}
for(int k=6;k<allrain.size();k=k+7){
BigDecimal rains= (BigDecimal) all.get(k).get("rain");
allrain72.add(allrain.get(k));
}
System.out.println("allrain---"+allrain);
System.out.println("allrain0---"+allrain0);
System.out.println("allrain1---"+allrain1);
System.out.println("allrain6---"+allrain6);
System.out.println("allrain12---"+allrain12);
System.out.println("allrain24---"+allrain24);
System.out.println("allrain48---"+allrain48);System.out.println("allrain72---"+allrain72);
queryParams.put("alltm0",alltm0);queryParams.put("allrain0",allrain0);
queryParams.put("allrain1",allrain1);queryParams.put("allrain6",allrain6);
queryParams.put("allrain12",allrain12);queryParams.put("allrain24",allrain24);
queryParams.put("allrain48",allrain48);queryParams.put("allrain72",allrain72);
queryParams.put("rainmaxsall", rainchartService.rainchart(select_rainmax_year,select_rainmax_stcd, tmbegin, tmend));
}
return new ModelAndView("rainmax", queryParams);
}
service:
@Autowired
AllJDBCTemplate allJDBCTemplate;
public List<Map<String, Object>> rainchart(String year,String stcd,String tmbegin, String tmend) {
JdbcTemplate temp1=allJDBCTemplate.getJdbcTemplate();
StringBuilder sqlstcds = new StringBuilder();
sqlstcds.append("select stcd,stnm from tb_station where stcd in(select distinct(stcd) from dt_rain)");
JdbcTemplate stcdsall1=allJDBCTemplate.getJdbcTemplate();
List<Map<String, Object>> liststcds =stcdsall1.queryForList(sqlstcds.toString());
sqlstcds.setLength(0);
List<Map<String, Object>> listalltoptm=new ArrayList(liststcds.size());
for(int p=0;p<liststcds.size();p++){
StringBuilder sql1 = new StringBuilder();
sql1.append("select top 1 rain,tm from dt_rain where stcd ='"+liststcds.get(p).get("stcd")+"' and tm between '"+tmbegin+"' and '"+tmend+"' order by rain desc ");
List<Map<String, Object>> list1=temp1.queryForList(sql1.toString());
listalltoptm.addAll(list1);
}
List<Map<String, Object>> listall=new ArrayList();
//for(int i=0;i<list1.size();i++){
// Timestamp tm00=new Timestamp( (long) list1.get(i).get("tm"));
for(int w=0;w<listalltoptm.size();w++){
StringBuilder sql = new StringBuilder();
DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String tm0 = sdf.format(listalltoptm.get(w).get("tm"));
Integer shi = Integer.parseInt(tm0.substring(11, 13));
Integer tian = Integer.parseInt(tm0.substring(8, 10));
Integer miao=Integer.parseInt(tm0.substring(17, 19));
String shi1 = null;
String shi6 = null;
String shi12 = null;
String shi122 = null;
String shi24 = null;
String shi48 = null;
String shi72 = null;
String miao01=null;String tm01=null;
String miao02=null;String tm02=null;
if(miao>0){miao01=String.valueOf(miao-1);tm01= tm0.substring(0, 17) + miao01;}else{miao01="00";tm01= tm0.substring(0, 17) + miao01;}
if(miao>0){miao02=String.valueOf(miao+1);tm02= tm0.substring(0, 17) + miao02;}else{miao02="01";tm02= tm0.substring(0, 17) + miao02;}
//1小时
if (shi < 9) {
int shi11 = shi + 1;
shi1 = "0" + String.valueOf(shi11);
} else if(shi>=9 ||shi<23){
shi1 = String.valueOf(shi + 1);
}else{
shi1 = String.valueOf(23);
}
//6小时
if (shi < 3) {
int shi61 = shi + 6;
shi6 = "0" + String.valueOf(shi61);
} else if (shi < 18) {
shi6 = String.valueOf(shi);
shi6 = String.valueOf(shi + 6);
} else if (shi >= 18) {
shi6 = String.valueOf(23);
}
// 12小时
String tm12 = null;
if (shi < 12) {
int shi121 = shi + 12;
shi12 = String.valueOf(shi121);
tm12 = tm0.substring(0, 10) + " " + shi12
+ tm0.substring(13, 19);
} else {
String tian12a = null;
if (tian < 31) {
int tian12 = tian + 1;
tian12a = String.valueOf(tian12);
}
shi122 = "06";//06为大概给的时间
tm12 = tm0.substring(0, 8) + tian12a + " " + shi122
+ tm0.substring(13, 19);
}
// 一天(24小时),两天(48小时),三天(72小时)
if (tian < 31) {
int shi241 = tian + 1;
shi24 = String.valueOf(shi241);
}
if (tian < 30) {
int shi481 = tian + 2;
shi48 = String.valueOf(shi481);
}
if (tian < 29) {
int shi721 = tian + 3;
shi72 = String.valueOf(shi721);
}
String tm1 = tm0.substring(0, 10) + " " + shi1
+ tm0.substring(13, 19);
String tm6 = tm0.substring(0, 10) + " " + shi6
+ tm0.substring(13, 19);
String tm24 = tm0.substring(0, 8) + shi24
+ tm0.substring(10, 19);
String tm48 = tm0.substring(0, 8) + shi48
+ tm0.substring(10, 19);
String tm72 = tm0.substring(0, 8) + shi72
+ tm0.substring(10, 19);
sql.append("(select rain as rain,'"+tm0+"' as tm from dt_rain where stcd ='"+liststcds.get(w).get("stcd")+"' and tm between '"+tm01+"' and '"+tm02+"')");
sql.append(" union all ");
sql.append("(select sum(rain) as rain,'"+tm1+"' as tm from dt_rain where stcd ='"+liststcds.get(w).get("stcd")+"' and tm between '"+tm0+"' and '"+tm1+"' )");
sql.append(" union all ");
sql.append("(select sum(rain) as rain,'"+tm6+"' as tm from dt_rain where stcd ='"+liststcds.get(w).get("stcd")+"' and tm between '"+tm0+"' and '"+tm6+"' )");
sql.append(" union all ");
sql.append("(select sum(rain) as rain,'"+tm12+"' as tm from dt_rain where stcd ='"+liststcds.get(w).get("stcd")+"' and tm between '"+tm0+"' and '"+tm12+"' )");
sql.append(" union all ");
sql.append("(select sum(rain) as rain,'"+tm24+"' as tm from dt_rain where stcd ='"+liststcds.get(w).get("stcd")+"' and tm between '"+tm0+"' and '"+tm24+"' )");
sql.append(" union all ");
sql.append("(select sum(rain) as rain,'"+tm48+"' as tm from dt_rain where stcd ='"+liststcds.get(w).get("stcd")+"' and tm between '"+tm0+"' and '"+tm48+"' )");
sql.append(" union all ");
sql.append("(select sum(rain) as rain,'"+tm72+"' as tm from dt_rain where stcd ='"+liststcds.get(w).get("stcd")+"' and tm between '"+tm0+"' and '"+tm72+"' )");
JdbcTemplate temp2=allJDBCTemplate.getJdbcTemplate();
List<Map<String, Object>> list =temp2.queryForList(sql.toString());
listall.addAll(list);
}
/*if(listall != null){
sql.append("<table align=\"center\" style=\"margin:0px auto;min-width:1000px;position: relative;width:100%;background:#FFF;border-collapse:collapse;\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">");
sql.append("<caption style=\"font-size:25px;font-weight:bolder;\">最大时段降雨量</cation>");
sql.append("<tr><td rowspan=\"2\" style=\"width:80px;height:50px;\">");
sql.append("<div style=\"position: absolute;left:10px;top:40px;\"><div> 时刻</div>");
sql.append("<div style=\"margin-top:5px;\">日期</div></div></td><td colspan=\"26\" align=\"center\">逐时水位(m)</td></tr>");
sql.append("<tr><td align=\"center\">8 时</td><td align=\"center\">9 时</td><td align=\"center\">10 时</td><td align=\"center\">11 时</td><td align=\"center\">12 时</td><td align=\"center\">13 时</td>");
sql.append("<td align=\"center\">14 时</td><td align=\"center\">15 时</td><td align=\"center\">16时</td><td align=\"center\">17 时</td><td align=\"center\">18 时</td><td align=\"center\">19 时</td>");
sql.append("<td align=\"center\">20 时</td><td align=\"center\">21时</td><td align=\"center\">22 时</td><td align=\"center\">23 时</td><td align=\"center\">24 时</td><td align=\"center\">1 时</td>");
sql.append("<td align=\"center\">2 时</td><td align=\"center\">3 时</td><td align=\"center\">4 时</td><td align=\"center\">5 时</td><td align=\"center\">6 时</td><td align=\"center\">7 时</td></tr>");
//sql.append("<tr><td rowspan=\"2\" align=\"center\">月统计</td><td align=\"left\" colspan=\"26\"> 月平均水位:"+MathUtil.round(DataProcess.avgNotZero(listall, "H8"), 3)+" m</td></tr>");
sql.append("<tr><td align=\"center\">备注</td><td colspan=\"26\"> </td></tr>");
sql.append("<tr><td align=\"center\">校核人</td><td colspan=\"26\"> </td></tr>");
sql.append("</table>");
}*/
return listall;
}
JdbcTemple:
@Service
public class AllJDBCTemplate<Session> {
protected static final String Transformers = null;
private Logger log = Logger.getLogger(this.getClass());
private DataSource dataSource;
private JdbcTemplate jdbcTemplate;
public JdbcTemplate getJdbcTemplate() {
return jdbcTemplate;
}
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
this.jdbcTemplate = new JdbcTemplate(dataSource);
}
public List<Map<String, Object>> getList(String sql) {
return jdbcTemplate.queryForList(sql);
}
public List<Map<String, Object>> findBystcd(String sql) {
return jdbcTemplate.queryForList(sql);
}
}
spring-servlet.xml:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
<!-- 定时任务类 -->
<bean id="szmbTask" class="com.szllt.common.util.SzmbImageRequest">
<property name="cloudPath" value="${cloud_path}" />
<property name="radarPath" value="${radar_path}" />
</bean>
<bean id="alertTask" class="com.szllt.common.util.AlertTask" />
<bean id="oracletosqlTask" class="com.szllt.common.util.OracletosqlTask" />
<!-- 定时任务执行的方法 -->
<bean id="cloudJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject"><ref bean="szmbTask"/></property>
<property name="targetMethod"><value>getSatPic</value></property>
</bean>
<bean id="radarJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject"><ref bean="szmbTask"/></property>
<property name="targetMethod"><value>getRadarPic</value></property>
</bean>
<bean id="alertJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject"><ref bean="alertTask"/></property>
<property name="targetMethod"><value>checkAlert</value></property>
</bean>
<bean id="oracletosqlJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject"><ref bean="oracletosqlTask"/></property>
<property name="targetMethod"><value>checkOracletosql</value></property>
</bean>
<!-- 卫星云图下载定时器:每小时执行一次 -->
<bean id="cloudTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail">
<ref bean="cloudJobDetail" />
</property>
<property name="cronExpression">
<!-- 时间大小由小到大排列,从秒开始,顺序为 秒,分,时,天,月,年 *为任意 ?为无限制。 -->
<value>0 41 * * * ?</value>
</property>
</bean>
<!-- 雷达图下载定时器:每十分钟执行一次 -->
<bean id="radarTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail">
<ref bean="radarJobDetail" />
</property>
<property name="cronExpression">
<!-- 时间大小由小到大排列,从秒开始,顺序为 秒,分,时,天,月,年 *为任意 ?为无限制。 -->
<value>0 0/10 * * * ?</value>
</property>
</bean>
<!-- 预警检查定时器:每五分钟执行一次 -->
<bean id="alertTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail">
<ref bean="alertJobDetail" />
</property>
<property name="cronExpression">
<!-- 时间大小由小到大排列,从秒开始,顺序为 秒,分,时,天,月,年 *为任意 ?为无限制。 -->
<value>0 0/5 * * * ?</value>
</property>
</bean>
<!-- oracle同步到SQL定时器:每五分钟执行一次 -->
<bean id="oracletosqlTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail">
<ref bean="oracletosqlJobDetail" />
</property>
<property name="cronExpression">
<!-- 时间大小由小到大排列,从秒开始,顺序为 秒,分,时,天,月,年 *为任意 ?为无限制。 -->
<value>0 0/5 * * * ?</value>
</property>
</bean>
<bean id="pingshanQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<!-- <ref bean="cloudTrigger" />
<ref bean="radarTrigger" /> -->
<ref bean="alertTrigger" />
<!-- <ref bean="oracletosqlTrigger" /> -->
</list>
</property>
</bean>
<!-- 指定配置文件路径 -->
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:config.properties" />
</bean>
<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass">
<value>org.springframework.web.servlet.view.tiles2.TilesView</value>
</property>
</bean>
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
<property name="definitions">
<list>
<value>/WEB-INF/tiles.xml</value>
</list>
</property>
</bean>
<bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" />
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="jsonHttpMessageConverter" />
</list>
</property>
</bean>
<bean id="jsonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
<!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
<mvc:annotation-driven />
<!-- 描述程序中所有注解 -->
<!-- enable component scanning and autowire (beware that this does not enable mapper scanning!) -->
<context:component-scan base-package="com.szllt.pingshan" />
<bean id="webObjectsAspect" class="com.szllt.common.aspects.WebObjectsAspect" />
<aop:aspectj-autoproxy />
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/*" />
<bean class="com.szllt.common.filter.RequestInterceptor" />
</mvc:interceptor>
</mvc:interceptors>
<!-- SQL Server 数据源 -->
<bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
<property name="url" value="${jdbc_url}" />
<property name="username" value="${jdbc_username}" />
<property name="password" value="${jdbc_password}" />
<!-- 初始化连接大小 -->
<property name="initialSize" value="0" />
<!-- 连接池最大使用连接数量 -->
<property name="maxActive" value="20" />
<!-- 连接池最大空闲 -->
<property name="maxIdle" value="20" />
<!-- 连接池最小空闲 -->
<property name="minIdle" value="0" />
<!-- 获取连接最大等待时间 -->
<property name="maxWait" value="60000" />
<!-- <property name="poolPreparedStatements" value="true" />
<property name="maxPoolPreparedStatementPerConnectionSize" value="33" /> -->
<property name="validationQuery" value="${validationQuery}" />
<property name="testOnBorrow" value="false" />
<property name="testOnReturn" value="false" />
<property name="testWhileIdle" value="true" />
<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
<property name="timeBetweenEvictionRunsMillis" value="60000" />
<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
<property name="minEvictableIdleTimeMillis" value="25200000" />
<!-- 打开removeAbandoned功能 -->
<property name="removeAbandoned" value="true" />
<!-- 1800秒,也就是30分钟 -->
<property name="removeAbandonedTimeout" value="1800" />
<!-- 关闭abanded连接时输出错误日志 -->
<property name="logAbandoned" value="true" />
<!-- 监控数据库 -->
<!-- <property name="filters" value="stat" /> -->
<property name="filters" value="mergeStat" />
</bean>
<!-- 数据连接管理 -->
<!-- transaction manager, use JtaTransactionManager for global tx -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="jttransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="jtdataSource" />
</bean>
<!-- 注解式事务处理 -->
<!-- enable transaction demarcation with annotations -->
<tx:annotation-driven transaction-manager="transactionManager" />
<tx:annotation-driven transaction-manager="jttransactionManager" />
<!-- MyBatisSqlSessionFactory配置 -->
<!-- define the SqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:mybatis-config.xml" />
<!-- 自动扫描目录, 省掉Configuration.xml里的手工配置 -->
<property name="typeAliasesPackage" value="com.szllt.pingshan.entity" />
<!-- 显式指定Mapper文件位置 -->
<property name="mapperLocations" value="classpath:/com/szllt/pingshan/dao/**/*Mapper.xml" />
</bean>
<!-- 扫描映射文件,并自动装载 -->
<!-- scan for mappers and let them be autowired -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.szllt.pingshan.dao" />
<property name="markerInterface" value="com.szllt.pingshan.dao.ISqlMapper" />
</bean>
<!-- 解析器注册 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="stringHttpMessageConverter" />
</list>
</property>
</bean>
<!-- String类型解析器,允许直接返回String类型的消息 -->
<bean id="stringHttpMessageConverter"
class="org.springframework.http.converter.StringHttpMessageConverter" />
<!-- jtds dataSource -->
<bean id="jtdataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="net.sourceforge.jtds.jdbc.Driver" />
<property name="url"
value="jdbc:jtds:sqlserver://192.168.1.15:1433/PingshanDb" />
<property name="username" value="sa" />
<property name="password" value="szllt" />
</bean>
<!-- Oracle 数据源 -->
<!-- <bean id="oracleDataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@10.4.1.1:1521:ORCL" />
<property name="username" value="datacenter" />
<property name="password" value="R720sjjh" />
</bean> -->
<!-- jdbcTemplate -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource">
<ref local="jtdataSource" />
</property>
</bean>
<!-- <bean id="jdbcTemplateoracle" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource">
<ref local="oracleDataSource" />
</property>
</bean> -->
<!-- 所有的jdbctemlate -->
<bean id="allJDBCTemplate" class="com.szllt.pingshan.dao.AllJDBCTemplate">
<property name="dataSource" ref="jtdataSource" />
</bean>
<!-- <bean id="allJDBCTemplateoracle" class="com.szllt.pingshan.dao.AllJDBCTemplateoracle">
<property name="dataSource" ref="oracleDataSource" />
</bean> -->
<!-- </>multipart 的解析器 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="26214400"></property>
<property name="defaultEncoding" value="utf-8" /><!--属性:编码 -->
</bean>
</beans>