JAVA里面读取PostgreSQL数据库最近80条温度检测记录,并用Highcharts展示在网站上

效果如下:


花了2天时间处理了服务器端的GET处理部分,和前端HTML部分。


难点(1):series[0]["data"][jjj]=parseFloat(arr_temp[jjj]);  首先series[0]的[0]是不能省掉的,因为采用的这个是多曲线展示,要展示的是第一条曲线。其次,这个是浮点型,直接把整型赋值给它是不行的。


难点(2):sql = "select * from ut_ut_detect_value where pointdetect_assit_infor<>'Randon Value Added' order by recordsn desc limit 80"; 读取PostgreSQL数据库里面最新的80条温度记录,而且不能包含AWS的EC2给该表添加的随机数的部分。


难点(3):数据准备好后再调用hightcharts显示,其实很简单,把数据显示部分打包成一个函数。在准备数据的函数里面再数据准备好后后再调用这个函数。不需要什么延时的处理。如下:


    						$.get("http://pptexpert.cn/ServeletQ/TestSV",function(data,status){
							str1 = data;
							count = 1;
							test_display();	
	//						do { curDate = new Date(); }
	//						while(curDate-date < 200);
	//					alert("Data is ready! Click the (2) to display" );
						});



要点(4):使用网站上的PS在线服务,用来确定图片上某点的颜色值。http://www.uupoop.com/ps/,方法参见:点这儿!


要点(5):UltraEdit自身带有HTML页面的按钮、前景颜色、背景颜色的快捷设置,很方便!



源代码:


服务器端:


package com.qxd;

import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * Servlet implementation class TestSV
 */
@WebServlet("/TestSV")
public class TestSV extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public TestSV() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		
        System.out.println("Entry of the test GET part =============" );
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String ssString = df.format(new Date());
		PrintWriter out = response.getWriter();
		out.print("Reply from server Servel!");
		out.print("Reply on 20170109!");
        System.out.println(ssString);
        out.print(ssString);

        System.out.println("Exit from the test GET part ************ " );
        
        System.out.println("-------- PostgreSQL "
                + "JDBC Connection Testing ------------");

        try {

        Class.forName("org.postgresql.Driver");

        } catch (ClassNotFoundException e) {

        System.out.println("Where is your PostgreSQL JDBC Driver? "
                        + "Include in your library path!");
        e.printStackTrace();
        return;

        }

        System.out.println("PostgreSQL JDBC Driver Registered!");

        Connection connection = null;

        try {

        connection = DriverManager.getConnection(
                        "jdbc:postgresql://180.76.147.172:5432/lportal", "username",
                        "password");

        } catch (SQLException e) {

        System.out.println("Connection Failed! Check output console");
        e.printStackTrace();
        return;

        }

        if (connection != null) {
        System.out.println("You made it, take control your database now!");
        } else {
        System.out.println("Failed to make connection!");
        }
        
        String sql = "select * from ut_ut_detect_value where pointdetect_assit_infor<>'Randon Value Added' order by recordsn desc limit 80"; 
      
        Statement stmt = null;
		try {
			stmt = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}  
        ResultSet rs = null;
		try {
			rs = stmt.executeQuery(sql);
		} catch (SQLException e2) {
			// TODO Auto-generated catch block
			e2.printStackTrace();
		}  
		
        try {
			while (rs.next()) {

			    System.out.print(rs.getString(1));
		        out.print(rs.getString(1));

			    System.out.print("  ");
			    out.print("  ");

			    System.out.println(rs.getString(10));
		        out.print(rs.getString(10));
			     
			    System.out.print("  ");
			    out.print("  ");

			    System.out.println(rs.getString(11));
		        out.print(rs.getString(11));
		        
			    System.out.print("  ");
			    out.print("  ");

			    System.out.println(rs.getString(12));
		        out.print(rs.getString(12));
			    out.print("  ");
	     
			 }
		} catch (SQLException e2) {
			// TODO Auto-generated catch block
			e2.printStackTrace();
		}

        try {
			rs.close();
		} catch (SQLException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}  
        
        
        try {
			stmt.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}  
        try {
			connection.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}  
		
        
		out.close();
		
		
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}


HTML端:

<!DOCTYPE html>
<html>
<head>
<title>David Room Temperature</title>
<script type="text/javascript" src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script src="http://code.highcharts.com/highcharts.js"></script>
<div id="container" style="width: 1000px; height: 800px; margin: 0 auto"></div>
<script>
$(document).ready(function(){	
	var str1 ="blank string";
	var str2 ="blank string";
	var str3 = "";
	var str4 = "";
	var arr  = new Array();
	var arr_temp = new Array();
	var arr_date = new Array();
    var value = 10.0;
    var resistance =10.0;
    var B = 3975.0;
    
    var temperature=20.0;
    
    var date = new Date();
		var curDate = null;


    						$.get("http://pptexpert.cn/ServeletQ/TestSV",function(data,status){
							str1 = data;
							do { curDate = new Date(); }
							while(curDate-date < 20);
//						alert("Data is ready! Click the (2) to display" );
						});


			$("button2").click(function(){    
				
				
				


				
				
				       
			str2 = str1;
			str3 = str2.substring(62);
			arr  = str3.split("  "); 
			for (var i=79;i>=0;i--)
			{
					arr_temp[i] = arr[4*(79-i)+1] ;
					arr_date[i] = arr[4*(79-i)+2] ;
			}			
                 var title = {
                 	text: 'David Room Temperature (\xB0C)'
                 };
                 var subtitle = {
                 	text: 'Source: pptexpert.cn'
                 };
                 var xAxis = {
                 	categories: ['“ª‘¬', '∂˛‘¬', '»˝‘¬', 'Àƒ‘¬', 'ŒÂ‘¬', '¡˘‘¬'
                 	,'∆fl‘¬', '∞À‘¬', 'æ≈‘¬', ' Æ‘¬', ' Æ“ª‘¬', ' Æ∂˛‘¬','“ª‘¬', '∂˛‘¬', '»˝‘¬', 'Àƒ‘¬', 'ŒÂ‘¬', '¡˘‘¬'
                 	,'∆fl‘¬', '∞À‘¬', 'æ≈‘¬', ' Æ‘¬', ' Æ“ª‘¬', ' Æ∂˛‘¬']
                 };
	         			for (var jj=0;jj<=79;jj++)
            		{
                 xAxis.categories[jj]=arr_date[jj].substring(0,16);
           			}	;
                  var yAxis = {
                  	min:0,
                 	title: {
                 		text: 'Temperature in David room (\xB0C)'
                 	},
                 	plotLines: [{
                 		value: 0,
                 		width: 1,
                 		color: '#808080'
                 	}]
                 };
                 var tooltip = {
                    valueSuffix: '\xB0C'
                   }
                 var legend = {
                 	layout: 'vertical',
                 	align: 'right',
                 	verticalAlign: 'middle',
                 	borderWidth: 0
                 };
								var ccc1 = arr_temp[0];

                 var series =  [
                 {
                 	name: 'David Home',
                 	data: [7, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2,
                 	26.5, 23.3, 18.3, 13.9, 9.6,7, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2,
                 	26.5, 23.3, 18.3, 13.9, 9.6]
                 },

                 ];
												series[0]["data"][0]=100;		
												var fff = parseFloat(arr_temp[0]); 	 		
													         			for (var jjj=0;jjj<=79;jjj++)
            		{
                        
                        value = parseFloat(arr_temp[jjj]);
                        
//                        			alert("value" + value );
                        resistance = (1023-value)*10000/value;
//                        			alert("resistance" + resistance );
                        
                        
                      temperature = 1.0/(Math.log(resistance/10000.0)/B+1.0/298.15)-273.15;  
                      temperature = Math.round(temperature*100)/100;
                      
//                        			alert("temperature" + temperature  );
                        
                  series[0]["data"][jjj]=temperature;
                 
           			}	;
//                    series[0]["data"][0]=0.0;	
                 var json = {};   json.title = title;     json.subtitle = subtitle;
                 json.xAxis = xAxis;
                 json.yAxis = yAxis;
                 json.tooltip = tooltip;
                 json.legend = legend;
                 json.series = series;
                 $('#container').highcharts(json);
			});

});
</script>
</head>
<body>
<div style="text-align: center"><div style="margin:3 auto;width:193px;align="center""> 
</div><div style="background-color: #7bb4eb"><b><div style="margin:3 auto;width:200px;"></div><button2 type="button" align="center">Click Here!</button2></b></div>
</div> 
</body>
</html>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值