加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

[Android]Android通过Servlet连接MySQL(读取)

(2014-01-18 21:33:29)
分类: JavaHadoopAndroid
   本文在Android通过PHP连接MySQL(读取)的基础上,使用另外一种方法,实现了Android与MySQL之间的数据通信。源代码在以前的基础上进行了修改。

//AndroidTestActivity.java

package com.example.test;

public class AndroidTestActivity extends Activity {

    JSONArray jArray;

    String result = null;

    InputStream is = null;

    StringBuilder sb = null;

   

    public static final String HTTPCustomer ="http://192.168.1.102:8080/SevletTest/AndroidServlet"

 

    @Override

    public void onCreate(Bundle savedInstanceState) {

       super.onCreate(savedInstanceState);

       setContentView(R.layout.main);

       Button b1 = (Button) findViewById(R.id.button1);

       b1.setOnClickListener(new Button.OnClickListener() {

           @Override

           public void onClick(View v) {

              // TODO Auto-generated method stub

              EditText tv = (EditText) findViewById(R.id.editView);

              // http get

              try {

//                 HttpParams httpParameters = new BasicHttpParams(); 

//                  HttpConnectionParams.setConnectionTimeout(httpParameters, 5000); 

//                  HttpConnectionParams.setSoTimeout(httpParameters, 5000); 

//                  HttpConnectionParams.setTcpNoDelay(httpParameters, true);

                  HttpClient httpclient = new DefaultHttpClient();

                 

                  HttpGet httpget = new HttpGet(HTTPCustomer);

                  HttpResponse response = httpclient.execute(httpget);

                  int status = response.getStatusLine().getStatusCode();

                  System.out.println("status="+status);

                  result = EntityUtils.toString(response.getEntity(), "UTF-8");

              } catch (Exception e) {

                  e.printStackTrace();

              }

 

              try {

                Gson gson = new Gson();

                List names = gson.fromJson(result, new TypeToken>(){}.getType());

                StringBuffer str = new StringBuffer();

                for(String name:names){

                   str.append(name);

                }

                tv.setText(str);

              }catch (Exception e) {

                  e.printStackTrace();

              }

           }

       });

    }

}



//服务器端,需要新建一个Servlet-JSP网站,并处于运行状态(启动Tomcat服务)

import java.io.BufferedReader;

import java.io.File;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.text.SimpleDateFormat;

import java.util.ArrayList;

import java.util.Collections;

import java.util.Date;

import java.util.List;

 

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 com.google.gson.Gson;

import com.mysql.jdbc.Connection;

import com.mysql.jdbc.Statement;

 

 

@WebServlet("/AndroidServlet")

public class AndroidServlet extends HttpServlet {

         private static final long serialVersionUID = 1L;

        

         static String driver = "com.mysql.jdbc.Driver";

         static String url = "jdbc:mysql://localhost:3306/testdb";

         static String user = "username";

         static String password = "password";

      

   

    public AndroidServlet() {

        super();

        // TODO Auto-generated constructor stub

    }

 

        

         protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

                   // TODO Auto-generated method stub

                   request.setCharacterEncoding("UTF-8");

        response.setCharacterEncoding("UTF-8");

        response.setContentType("application/json;charset=utf-8");

       

        List resultList = null;

                   try {

                            resultList = getData();

                   } catch (Exception e) {

                            // TODO Auto-generated catch block

                            e.printStackTrace();

                   }

        Gson gson = new Gson();

        String result = gson.toJson(resultList);

       

        PrintWriter out = response.getWriter();

//        }

        out.write(result);

        out.flush();

        out.close();

         }

 

    private List getData() throws Exception {

       

        List resultList = new ArrayList();

       

                   Class.forName(driver);

                   Connection conn = (Connection) DriverManager.getConnection(url, user, password);

                   Statement statement = (Statement) conn.createStatement();

                  

                   String sql = null;

                  

                   sql = "select name from teacher";

                  

                   ResultSet rs = statement.executeQuery(sql);

                  

                   while(rs.next()){

                            resultList.add(rs.getString("name"));

                   }

       

        return resultList;

    }

 

        

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

                   // TODO Auto-generated method stub

         }

 

}



说明:

(1)网站依赖的第三方library,需要放在WEB-INF目录下的lib文件夹中,默认是没有lib的,需要自己新建一个;
(2)部署网站的时候,需要把生成的.class放在WEB-INF目录下的classes文件夹中

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有