前提:假设远程有一个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>

更多相关文章

  1. Android中线程的使用方法
  2. android设备adb usb驱动安装方法
  3. Android学习-RelativeLayout相对布局属性方法
  4. framework的调试与编译方法
  5. android studio 更新 Gradle错误解决方法
  6. android EditText控件自动获取焦点弹出键盘解决方法
  7. Unity3d调用android中的方法
  8. Android获取当前已连接的wifi信号强度的方法

随机推荐

  1. mac 装5.6版本mysql 设置密码的简易方法
  2. Mysql数据库从5.6.28版本升到8.0.11版本
  3. Mysql 常用的时间日期及转换函数小结
  4. Mysql注入中的outfile、dumpfile、load_f
  5. MYSQL的存储过程和函数简单写法
  6. win10 下安装mysql服务器社区版本mysql 5
  7. 教你如何在Mac上安装mysql数据库
  8. MySql中如何使用 explain 查询 SQL 的执
  9. Mac 下 MySQL5.7.22的安装过程
  10. JDBC连接MySQL5.7的方法