Android本地代码直接访问远程数据库(Rxjava方式)
16lz
2021-01-24
1.引入jar驱动文件,驱动文件:mysql-connector-java-5.0.8-bin.jar,可以自己到网上下载
2.把代码中数据库地址和登录用户名密码替换就可以直接访问
java文件:
package com.hd.jdbc;import android.content.DialogInterface;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import com.hd.studyandtest.R;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import rx.Observable;import rx.Subscriber;import rx.android.schedulers.AndroidSchedulers;import rx.functions.Func1;import rx.schedulers.Schedulers;public class ActivityJDBC extends AppCompatActivity implements View.OnClickListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_activity_jdbc); } Connection conn=null; Statement stmt=null; @Override public void onClick(View v) { Observable.just("com.mysql.jdbc.Driver").map(new Func1() { @Override public ResultSet call(String classname) { //注册驱动 try { //注册驱动 //Class.forName("com.mysql.jdbc.Driver"); Class.forName(classname); String url = "jdbc:mysql://60.205.213.50:3306/app"; //Connection conn = DriverManager.getConnection(url, "root", "4f5c1c94bc"); Connection conn = DriverManager.getConnection(url, "admin", "admin"); Statement stmt = conn.createStatement(); String sql = "select * from user"; ResultSet rs = stmt.executeQuery(sql); return rs; } catch (ClassNotFoundException e) { Log.v("123", "fail to connect!" + " " + e.getMessage()); } catch (SQLException e) { e.printStackTrace(); Log.v("123", "fail to connect!" + " " + e.getMessage()); } return null; } }).subscribeOn(Schedulers.newThread()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Subscriber() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { try{ if(stmt!=null){ stmt.close(); } if(conn!=null){ conn.close(); } }catch (SQLException sqle){ sqle.printStackTrace(); } } @Override public void onNext(ResultSet rs){ try { while (rs.next()) { Log.v("123", "field1-->" + rs.getString("account")+ " field2-->" + rs.getString("name")+ " field3-->" + rs.getString("password")); Log.v("123", "field1-->" + rs.getString(1) + " field2-->" + rs.getString(2)+ " field3-->" + rs.getString(3)); } } catch (SQLException e) { e.printStackTrace(); }finally { try{ if(stmt!=null){ stmt.close(); } if(conn!=null){ conn.close(); } if(rs!=null){ rs.close(); } }catch (SQLException e){ e.printStackTrace(); } } Log.v("123", "success to connect!"); } }); }}
XML文件:
<?xml version="1.0" encoding="utf-8"?>
更多相关文章
- 一款常用的 Squid 日志分析工具
- GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
- RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
- Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
- Android(安卓)APP 进入后台开启手势密码页面
- Android(安卓)如何访问Assets文件夹里面的资源
- Apache Ant 环境开发Android应用 二
- Android(安卓)-- 图片异步上传到PHP服务器
- 初识安卓Android(1)