`
livia1234
  • 浏览: 44139 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

关于Android连接远程数据库(mysql、oracle)

 
阅读更多
前提:假设远程有一个oracle的数据库,并且有一个已经连接(JDBC操作)了该DB的server(AndroidServer),IP为:http://192.168.0.12:8080/AndroidServer/。
测试程序功能:实现登录功能。
1,当然是先建一个Android 的 project啦
<wbr><img alt="关于Android连接远程数据库(mysql、oracle) - Jansun - 茅庐" src="http://b.bst.126.net/common/portrait/face/preview/face1.gif"><br> 2,建一个HTTP的工具类HttpUtil来获得HttpRequest对象和HttpResponse对象,以及发送get和post请求获得返回response信息的方法:<br><div>package android.ocacleconnect.util;</div> <div><br></div> <div>import java.io.IOException;</div> <div><br></div> <div>import org.apache.http.HttpResponse;</div> <div>import org.apache.http.client.ClientProtocolException;</div> <div>import org.apache.http.client.methods.HttpGet;</div> <div>import org.apache.http.client.methods.HttpPost;</div> <div>import org.apache.http.impl.client.DefaultHttpClient;</div> <div>import org.apache.http.util.EntityUtils;</div> <div><br></div> <div>public class HttpUtil {</div> <div> <span style="white-space:pre"></span>// 基础URL</div> <div> <span style="white-space:pre"></span>public static final String BASE_URL="http://192.168.0.12:8080/AndroidServer/";</div> <div> <span style="white-space:pre"></span>// 获得Get请求对象request</div> <div> <span style="white-space:pre"></span>public static HttpGet getHttpGet(String url){</div> <div> <span style="white-space:pre"></span>HttpGet request = new HttpGet(url);</div> <div> <span style="white-space:pre"></span>return request;</div> <div> <span style="white-space:pre"></span>}</div> <div> <span style="white-space:pre"></span>// 获得Post请求对象request</div> <div> <span style="white-space:pre"></span>public static HttpPost getHttpPost(String url){</div> <div> <span style="white-space:pre"></span>HttpPost request = new HttpPost(url);</div> <div> <span style="white-space:pre"></span>return request;</div> <div> <span style="white-space:pre"></span>}</div> <div> <span style="white-space:pre"></span>// 根据请求获得响应对象response</div> <div> <span style="white-space:pre"></span>public static HttpResponse getHttpResponse(HttpGet request) throws ClientProtocolException, IOException{</div> <div> <span style="white-space:pre"></span>HttpResponse response = new DefaultHttpClient().execute(request);</div> <div> <span style="white-space:pre"></span>return response;</div> <div> <span style="white-space:pre"></span>}</div> <div> <span style="white-space:pre"></span>// 根据请求获得响应对象response</div> <div> <span style="white-space:pre"></span>public static HttpResponse getHttpResponse(HttpPost request) throws ClientProtocolException, IOException{</div> <div> <span style="white-space:pre"></span>HttpResponse response = new DefaultHttpClient().execute(request);</div> <div> <span style="white-space:pre"></span>return response;</div> <div> <span style="white-space:pre"></span>}</div> <div><span style="white-space:pre"></span></div> <div> <span style="white-space:pre"></span>// 发送Post请求,获得响应查询结果</div> <div> <span style="white-space:pre"></span>public static String queryStringForPost(String url){</div> <div> <span style="white-space:pre"></span>// 根据url获得HttpPost对象</div> <div> <span style="white-space:pre"></span>HttpPost request = HttpUtil.getHttpPost(url);</div> <div> <span style="white-space:pre"></span>String result = null;</div> <div> <span style="white-space:pre"></span>try {</div> <div> <span style="white-space:pre"></span>// 获得响应对象</div> <div> <span style="white-space:pre"></span>HttpResponse response = HttpUtil.getHttpResponse(request);</div> <div> <span style="white-space:pre"></span>// 判断是否请求成功</div> <div> <span style="white-space:pre"></span>if(response.getStatusLine().getStatusCode()==200){</div> <div> <span style="white-space:pre"></span>// 获得响应</div> <div> <span style="white-space:pre"></span>result = EntityUtils.toString(response.getEntity());</div> <div> <span style="white-space:pre"></span>return result;</div> <div> <span style="white-space:pre"></span>}</div> <div> <span style="white-space:pre"></span>} catch (ClientProtocolException e) {</div> <div> <span style="white-space:pre"></span>e.printStackTrace();</div> <div> <span style="white-space:pre"></span>result = "网络异常!";</div> <div> <span style="white-space:pre"></span>return result;</div> <div> <span style="white-space:pre"></span>} catch (IOException e) {</div> <div> <span style="white-space:pre"></span>e.printStackTrace();</div> <div> <span style="white-space:pre"></span>result = "网络异常!";</div> <div> <span style="white-space:pre"></span>return result;</div> <div> <span style="white-space:pre"></span>}</div> <div> return null;</div> <div> }</div> <div> <span style="white-space:pre"></span>// 获得响应查询结果</div> <div> <span style="white-space:pre"></span>public static String queryStringForPost(HttpPost request){</div> <div> <span style="white-space:pre"></span>String result = null;</div> <div> <span style="white-space:pre"></span>try {</div> <div> <span style="white-space:pre"></span>// 获得响应对象</div> <div> <span style="white-space:pre"></span>HttpResponse response = HttpUtil.getHttpResponse(request);</div> <div> <span style="white-space:pre"></span>// 判断是否请求成功</div> <div> <span style="white-space:pre"></span>if(response.getStatusLine().getStatusCode()==200){</div> <div> <span style="white-space:pre"></span>// 获得响应</div> <div> <span style="white-space:pre"></span>result = EntityUtils.toString(response.getEntity());</div> <div> <span style="white-space:pre"></span>return result;</div> <div> <span style="white-space:pre"></span>}</div> <div> <span style="white-space:pre"></span>} catch (ClientProtocolException e) {</div> <div> <span style="white-space:pre"></span>e.printStackTrace();</div> <div> <span style="white-space:pre"></span>result = "网络异常!";</div> <div> <span style="white-space:pre"></span>return result;</div> <div> <span style="white-space:pre"></span>} catch (IOException e) {</div> <div> <span style="white-space:pre"></span>e.printStackTrace();</div> <div> <span style="white-space:pre"></span>result = "网络异常!";</div> <div> <span style="white-space:pre"></span>return result;</div> <div> <span style="white-space:pre"></span>}</div> <div> return null;</div> <div> }</div> <div> <span style="white-space:pre"></span>// 发送Get请求,获得响应查询结果</div> <div> <span style="white-space:pre"></span>public static String queryStringForGet(String url){</div> <div> <span style="white-space:pre"></span>// 获得HttpGet对象</div> <div> <span style="white-space:pre"></span>HttpGet request = HttpUtil.getHttpGet(url);</div> <div> <span style="white-space:pre"></span>String result = null;</div> <div> <span style="white-space:pre"></span>try {</div> <div> <span style="white-space:pre"></span>// 获得响应对象</div> <div> <span style="white-space:pre"></span>HttpResponse response = HttpUtil.getHttpResponse(request);</div> <div> <span style="white-space:pre"></span>// 判断是否请求成功</div> <div> <span style="white-space:pre"></span>if(response.getStatusLine().getStatusCode()==200){</div> <div> <span style="white-space:pre"></span>// 获得响应</div> <div> <span style="white-space:pre"></span>result = EntityUtils.toString(response.getEntity());</div> <div> <span style="white-space:pre"></span>return result;</div> <div> <span style="white-space:pre"></span>}</div> <div> <span style="white-space:pre"></span>} catch (ClientProtocolException e) {</div> <div> <span style="white-space:pre"></span>e.printStackTrace();</div> <div> <span style="white-space:pre"></span>result = "网络异常!";</div> <div> <span style="white-space:pre"></span>return result;</div> <div> <span style="white-space:pre"></span>} catch (IOException e) {</div> <div> <span style="white-space:pre"></span>e.printStackTrace();</div> <div> <span style="white-space:pre"></span>result = "网络异常!";</div> <div> <span style="white-space:pre"></span>return result;</div> <div> <span style="white-space:pre"></span>}</div> <div> return null;</div> <div> }</div> <div>}</div> <div> <br> 3. 建一个LoginActivity的activity,调用刚写的HttpUtil工具来实现连接远程的数据库<br><div>package android.oracleconnect.activity;</div> <div><br></div> <div>import android.app.Activity;</div> <div>import android.app.AlertDialog;</div> <div>import android.content.DialogInterface;</div> <div>import android.content.Intent;</div> <div>import android.content.SharedPreferences;</div> <div>import android.os.Bundle;</div> <div>import android.view.View;</div> <div>import android.view.View.OnClickListener;</div> <div>import android.widget.Button;</div> <div>import android.widget.EditText;</div> <div>import android.widget.Toast;</div> <div><br></div> <div>import android.oracleconnect.HttpUtil;</div> <div><br></div> <div>public class LoginActivity extends Activity {</div> <div> <span style="white-space:pre"></span>// 声明登录、取消按钮</div> <div> <span style="white-space:pre"></span>private Button cancelBtn,loginBtn;</div> <div> <span style="white-space:pre"></span>// 声明用户名、密码输入框</div> <div> <span style="white-space:pre"></span>private EditText userEditText,pwdEditText;</div> <div> <span style="white-space:pre"></span>@Override</div> <div> <span style="white-space:pre"></span>public void onCreate(Bundle savedInstanceState) {</div> <div> <span style="white-space:pre"></span>super.onCreate(savedInstanceState);</div> <div> <span style="white-space:pre"></span>// 设置标题</div> <div> <span style="white-space:pre"></span>setTitle("Android远程数据库连接测试-用户登录");</div> <div> <span style="white-space:pre"></span>// 设置当前Activity界面布局</div> <div> <span style="white-space:pre"></span>setContentView(R.layout.login_system);</div> <div> <span style="white-space:pre"></span>// 通过findViewById方法实例化组件</div> <div> <span style="white-space:pre"></span>cancelBtn = (Button)findViewById(R.id.cancelButton);</div> <div> <span style="white-space:pre"></span>// 通过findViewById方法实例化组件</div> <div> <span style="white-space:pre"></span>loginBtn = (Button)findViewById(R.id.loginButton);</div> <div> <span style="white-space:pre"></span>// 通过findViewById方法实例化组件</div> <div> <span style="white-space:pre"></span>userEditText = (EditText)findViewById(R.id.userEditText);</div> <div> <span style="white-space:pre"></span>// 通过findViewById方法实例化组件</div> <div> <span style="white-space:pre"></span>pwdEditText = (EditText)findViewById(R.id.pwdEditText);</div> <div><span style="white-space:pre"></span></div> <div> <span style="white-space:pre"></span>cancelBtn.setOnClickListener(new OnClickListener() {</div> <div> <span style="white-space:pre"></span>@Override</div> <div> <span style="white-space:pre"></span>public void onClick(View v) {</div> <div> <span style="white-space:pre"></span>finish();</div> <div> <span style="white-space:pre"></span>}</div> <div> <span style="white-space:pre"></span>});</div> <div><span style="white-space:pre"></span></div> <div> <span style="white-space:pre"></span>loginBtn.setOnClickListener(new OnClickListener() {</div> <div> <span style="white-space:pre"></span>@Override</div> <div> <span style="white-space:pre"></span>public void onClick(View v) {</div> <div> <span style="white-space:pre"></span>if(validate()){</div> <div> <span style="white-space:pre"></span>if(login()){</div> <div> <span style="white-space:pre"></span>Intent intent = new Intent(LoginActivity.this,MainMenuActivity.class);</div> <div> <span style="white-space:pre"></span>startActivity(intent);</div> <div> <span style="white-space:pre"></span>}else{</div> <div> <span style="white-space:pre"></span>showDialog("用户名称或者密码错误,请重新输入!");</div> <div> <span style="white-space:pre"></span>}</div> <div> <span style="white-space:pre"></span>}</div> <div> <span style="white-space:pre"></span>}</div> <div> <span style="white-space:pre"></span>});</div> <div> <span style="white-space:pre"></span>}</div> <div> <span style="white-space:pre"></span>// 登录方法</div> <div> <span style="white-space:pre"></span>private boolean login(){</div> <div> <span style="white-space:pre"></span>// 获得用户名称</div> <div> <span style="white-space:pre"></span>String username = userEditText.getText().toString();</div> <div> <span style="white-space:pre"></span>// 获得密码</div> <div> <span style="white-space:pre"></span>String pwd = pwdEditText.getText().toString();</div> <div> <span style="white-space:pre"></span>// 获得登录结果</div> <div> <span style="white-space:pre"></span>String result=query(username,pwd);</div> <div> <span style="white-space:pre"></span>System.out.println("result:"+result);</div> <div> <span style="white-space:pre"></span>if(result!=null&amp;&amp;result.equals("0")){</div> <div> <span style="white-space:pre"></span>return false;</div> <div> <span style="white-space:pre"></span>}else{</div> <div> <span style="white-space:pre"></span>saveUserMsg(result);</div> <div> <span style="white-space:pre"></span>return true;</div> <div> <span style="white-space:pre"></span>}</div> <div> <span style="white-space:pre"></span>}</div> <div><span style="white-space:pre"></span></div> <div> <span style="white-space:pre"></span>// 将用户信息保存到配置文件</div> <div> <span style="white-space:pre"></span>private void saveUserMsg(String msg){</div> <div> <span style="white-space:pre"></span>// 用户编号</div> <div> <span style="white-space:pre"></span>String id = "";</div> <div> <span style="white-space:pre"></span>// 用户名称</div> <div> <span style="white-space:pre"></span>String name = "";</div> <div> <span style="white-space:pre"></span>// 获得信息数组</div> <div> <span style="white-space:pre"></span>String[] msgs = msg.split(";");</div> <div> <span style="white-space:pre"></span>int idx = msgs[0].indexOf("=");</div> <div> <span style="white-space:pre"></span>id = msgs[0].substring(idx+1);</div> <div> <span style="white-space:pre"></span>idx = msgs[1].indexOf("=");</div> <div> <span style="white-space:pre"></span>name = msgs[1].substring(idx+1);</div> <div> <span style="white-space:pre"></span>// 共享信息</div> <div> <span style="white-space:pre"></span>SharedPreferences pre = getSharedPreferences("user_msg", MODE_WORLD_WRITEABLE);</div> <div> <span style="white-space:pre"></span>SharedPreferences.Editor editor = pre.edit();</div> <div> <span style="white-space:pre"></span>editor.putString("id", id);</div> <div> <span style="white-space:pre"></span>editor.putString("name", name);</div> <div> <span style="white-space:pre"></span>editor.commit();</div> <div> <span style="white-space:pre"></span>}</div> <div><span style="white-space:pre"></span></div> <div> <span style="white-space:pre"></span>// 验证方法</div> <div> <span style="white-space:pre"></span>private boolean validate(){</div> <div> <span style="white-space:pre"></span>String username = userEditText.getText().toString();</div> <div> <span style="white-space:pre"></span>if(username.equals("")){</div> <div> <span style="white-space:pre"></span>showDialog("用户名称是必填项!");</div> <div> <span style="white-space:pre"></span>return false;</div> <div> <span style="white-space:pre"></span>}</div> <div> <span style="white-space:pre"></span>String pwd = pwdEditText.getText().toString();</div> <div> <span style="white-space:pre"></span>if(pwd.equals("")){</div> <div> <span style="white-space:pre"></span>showDialog("用户密码是必填项!");</div> <div> <span style="white-space:pre"></span>return false;</div> <div> <span style="white-space:pre"></span>}</div> <div> <span style="white-space:pre"></span>return true;</div> <div> <span style="white-space:pre"></span>}</div> <div> <span style="white-space:pre"></span>private void showDialog(String msg){</div> <div> <span style="white-space:pre"></span>AlertDialog.Builder builder = new AlertDialog.Builder(this);</div> <div> <span style="white-space:pre"></span>builder.setMessage(msg)</div> <div> <span style="white-space:pre"></span> .setCancelable(false)</div> <div> <span style="white-space:pre"></span> .setPositiveButton("确定", new DialogInterface.OnClickListener() {</div> <div> <span style="white-space:pre"></span> public void onClick(DialogInterface dialog, int id) {</div> <div> <span style="white-space:pre"></span> }</div> <div> <span style="white-space:pre"></span> });</div> <div> <span style="white-space:pre"></span>AlertDialog alert = builder.create();</div> <div> <span style="white-space:pre"></span>alert.show();</div> <div> <span style="white-space:pre"></span>}</div> <div> <span style="white-space:pre"></span>// 根据用户名称密码查询</div> <div> <span style="white-space:pre"></span>private String query(String account,String password){</div> <div> <span style="white-space:pre"></span>// 查询参数</div> <div> <span style="white-space:pre"></span>String queryString = "account="+account+"&amp;password="+password;</div> <div> <span style="white-space:pre"></span>// url</div> <div> <span style="white-space:pre"></span>String url = HttpUtil.BASE_URL+"servlet/LoginServlet?"+queryString;</div> <div> <span style="white-space:pre"></span>// 查询返回结果</div> <div> <span style="white-space:pre"></span>return HttpUtil.queryStringForPost(url);</div> <div> }</div> <div>}<br> </div> </div> </wbr>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics