- 浏览: 44139 次
- 性别:
- 来自: 大连
最新评论
关于Android连接远程数据库(mysql、oracle)
前提:假设远程有一个oracle的数据库,并且有一个已经连接(JDBC操作)了该DB的server(AndroidServer),IP为:http://192.168.0.12:8080/AndroidServer/。
测试程序功能:实现登录功能。
1,当然是先建一个Android 的 project啦
测试程序功能:实现登录功能。
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&&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+"&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>
相关推荐
android连接远程数据库PHP+MYSQL
文档包含了Oracle数据库的连接,以及检测是否连接成功,还包含的MySQL数据库的连接及检测,这是基于初学者的学习使用
Android实现连接MySQL数据库的详细代码,对应的连接详操作文档在https://blog.csdn.net/hongfei568718926/article/details/102533832
这是一个关于android远程连接Mysql数据库的代码,里面的的代码结构清晰,内容充实,风格诡异,一看吓一跳这种,但是里面包含的精华确是非常巨大的,这个是一个完整代码,能够在任何地方运行。
MYSQL数据库远程连接,例程,需要有亦众的支持库才能编译。
Android 远程连接mysql 驱动 8.0.29
android连接mysql数据库例子,客户端--服务器---数据库模式,大家分享一下
this sample show how operater MySql database with Android studio
通过android studio 连接云服务器上的mysql数据库 来对mysql数据库进行操作,实现登录注册功能
Oracle创建DBlink连接MYSQL数据库
JDBC的URL=协议名:子协议名:数据源名。 a 协议名总是“jdbc”。 b 子协议名由JDBC驱动程序的编写者决定。 c 数据源名也可能包含用户与口令等信息;这些信息也可单独提供。...几种常见的数据库连接.......
python 操作数据库 mysql oracle cx_oracle to_sql 操作数据库 读取 插入 更新
C#连接常用数据库(oracle,mysql).zip
这是项目小组培训新手时,写的一个用jsp连接数据库的代码(包括连mysql oracle sqlserver三种数据库)
Android连接MS、Oracle/Mysql数据库例子
navicat15,可以连接MySQL、Oracle等主流数据库 连接Oracle需要配置OCI
这是用连接池技术管理连接oracle数据库的工具类代码,如果想连接MySQL,直接修改配置文件即可。
安卓模拟器连接本地MySQL数据库,实现资源增删查改功能,附数据库,完全可用
一、sql-developer工具准备 二、工具使用说明 三、创建MySQL、Oracle数据库连接信息 四、Mysql数据库移植到Oracle数据库 五、通过PLsql登录
实现连接mysql数据库,android的登录注册,包括源代码和mysql数据文件。亲测可用, 谢谢支持。