Android Studio 通过JDBC驱动获取Mysql数据库数据

最近在做一个智能监控灌溉的APP,需要用到远程Mysql数据库,所以来说下我在连接Mysql数据对于我来说遇到的坑。

我之前用的是mysql-connector-java-8.0.13.jar,用了低于5.5的访问方法,结果一直连接不成功,查了查资料,原来高版本的mysql库写法有了一些改变,而我没有去看开发者文档(下次一点先看),官方原话:

MySQL Connector / J 8.0与从MySQL 5.5开始的所有MySQL版本兼容。

此外,MySQL Connector / J 8.0支持使用MySQL Server 8.0进行开发的新X DevAPI。

下面开始吧(低于5.5版本)

首先导入mysql-connector-java-5.1.30.jar包

打包地址

链接: https://pan.baidu.com/s/1nk93KPlYPz_iE6pU1KGoRw 提取码: 9cim 

链接: https://pan.baidu.com/s/1nfgLXQlMVOXMdis20YuEsg 提取码: w5vj 

首先创建一个DBConnection类

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.List;

public class DBConnection {
    private static final String DBDRIVER = "com.mysql.jdbc.Driver";
    private static final String DBURL = "jdbc:mysql://数据库地址:3306/数据库名?useSSL=FALSE";
    private static final String DBUSER = "用户名";
    private static final String DBPASSWORD = "密码";

    public static boolean linkMysql() {
        Connection conn=null;
        PreparedStatement stmt=null;
        try {
            Class.forName(DBDRIVER).newInstance();
        }
        catch (Exception e){
            e.printStackTrace();
            return false;
        }
        try{
            conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);
            Log.i("aaa", "连接成功");
            String sql = "SELECT * from 表名";
            stmt= conn.prepareStatement(sql);
            ResultSet rs = stmt.executeQuery();
            while (rs.next()) {
                Log.i("temp", rs.getString("字段"));
            }
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
        finally {
            if(conn!=null){
                try {
                    conn.close();
                }catch (Exception e){
                    e.printStackTrace();
                }
            }
        }
    }
}

数据库推荐去买一个服务器,然后用宝塔面板一键部署,反正我在虚拟机里配置了好长一段时间都没有成功,有成功的大神可以告诉我下。

然后是在主活动中调用(注意用线程)

下面是主要代码

            new Thread(new Runnable() {
                @Override
                public void run() {
                    DBConnection.linkMysql();
                }
            }).start();

再来说下5.5版本及以上的写法

修改DBConnection类

private static final String DBDRIVER = "com.mysql.cj.jdbc.Driver";
private static final String DBURL = "jdbc:mysql://数据库地址:3306/数据库名?useSSL=true&serverTimezone=GMT”;

完工。

你可能感兴趣的:(Android Studio 通过JDBC驱动获取Mysql数据库数据)