2013年7月25日 星期四

java servlet readtable dynamic tableRead.java

tableRead.java

import java.net.*;import java.io.*;import java.util.HashMap;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;

import java.sql.SQLException;import java.sql.Statement;
//e.g. http://127.0.0.1:8080/Test/tableRead?table=history&fields=securitycode,%20UNIX_TIMESTAMP%28date%29*1000,open,high,low,last&key=securitycode&value=546&format=I,L,D,D,D,D
public class tableRead extends HttpServlet {
static String key="";
static String value="";
static String result="";
static String table = "";
static String fields = "" ;
static Connection con = null;
static Statement stmt = null;
static ResultSet rs = null;
static double[][] dResults=null;
static String _r = "";
static String format="";
static void getSQLData(){
try {
String formats[]=format.split(",");
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=UTF8","root", "root");
stmt = con.createStatement();
String sqlString = "";
sqlString="select "+fields+" from "+table+" where "+key +" = "+value +" ;";
rs = stmt.executeQuery(sqlString);
int iRecno=0;
String rD=""; // RowDelimiter
result="";
while (rs.next()){
result=result+rD+"[";
String fD="";  // fD=fieldDelimiter
for (int j=1; j<=formats.length; j++){
if (formats[j-1].equals("I")){
result=result+fD+Integer.toString(rs.getInt(j));}
if (formats[j-1].equals("D")){
result=result+fD+Double.toString(rs.getDouble(j));}
if (formats[j-1].equals("L")){
result=result+fD+Long.toString(rs.getLong(j));}
if (formats[j-1].equals("S")){
result=result+fD+rs.getString(j);}
fD=",";
}
result=result+"]";
rD=",\n";
++iRecno;
}
con.close();
} catch (Exception e) {e.printStackTrace();}
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

doGet(request, response);}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/javascript");
response.setCharacterEncoding("UTF-8");
table = request.getParameter("table");
fields = request.getParameter("fields");
format = request.getParameter("format"); //format="D,L,D,D,D,D,D"
String callback = request.getParameter("callback");
String value_2="0",value_3="0",value_4="0",value_5="0";
value=request.getParameter("value");
key=request.getParameter("key");
int iValue=0,iValue2=0, iValue3=0,iValue4=0, iValue5=0;
int iSignificant=4; // 4 is default
String _return = "",newString ="";
_r=callback+"([\n";
getSQLData();
//makeJSon(iSignificant);
_r=_r+result+"\n";
_r=_r+"]);";
StringBuilder sb = new StringBuilder(); sb.append(_r); _r="";
PrintWriter out = response.getWriter();
out.print(sb.toString());
out.flush();
dResults=null;
format=null;
result="";
result=null;
table=null;
fields=null;
key=null;
value=null;
_r=null;
 }
}

沒有留言:

張貼留言