首先,直接连接数据库不能直接写在主线程内,一般写在子线程中,同时app在配置文件中还要写上请求网络的静态权限,其次注意MySQL版本和mysql-connector-java 之间的版本,mysql5.6 可以和mysql-connector-java-5.1.8等进行搭配,可以直接使用,网上很多也是mysql5.X的数据库的连接教程,但是mysql8.X的数据库我用相应的mysql-connector-java-8.0.X在进行连接时会闪退。
所以一般 mysql5.6+官网下载的mysql-connector-java-5.1.8配起来是一定可以使用的(但是首先要确保mysql可以远程连接)。
远程连接
可以通过Navicat软件通过localhost连接至数据库后点击用户选项,新建用户(不要忘记设置权限),然后将主机那一栏设置为 % 即可进行‘远程访问’,点击连接,输入用户名密码和本地网络ip地址即可连接成功。当然还有更详细的,在百度上。
设置网络权限(在AndroidManifest.xnm中写上)
测试成功的垃圾 测试代码(java)
new Thread(new Runnable() { @Override public void run() { String CLS="com.mysql.jdbc.Driver"; String URL="jdbc:mysql://IP地址:3306/数据库名?serverTimezone=UTC"; String USER="数据库用户名"; String PWD="数据库密码"; String test=""; try { Class.forName(CLS).newInstance(); Connection conn=(Connection) DriverManager.getConnection(URL,USER,PWD); String sql="要执行的sql语句"; Statement stmt=conn.createStatement(); ResultSet rs=stmt.executeQuery(sql); while (rs.next()){ test+=rs.getString("name"); Log.v("debug","AAAA"); Log.v("debug",test); } } catch (ClassNotFoundException | SQLException | IllegalAccessException | InstantiationException e) { e.printStackTrace(); } } }).start();
记录。