当前位置:   article > 正文

Android Studio 连接阿里云MySQL服务器并输出查询结果_android studio连接阿里云mysql

android studio连接阿里云mysql

准备工作:添加引用

 在AndroidManifest.xml文件内增加

<uses-permission android:name="android.permission.INTERNET" />

一、建立连接

  1. //连接数据库,成功返回真,失败返回假
  2. private boolean conSQL() throws ClassNotFoundException {
  3. Class.forName("com.mysql.jdbc.Driver");
  4. try {
  5. String url = "jdbc:mysql://数据库连接外部地址:3306/数据库名称?autoReconnect=true&useSSL=false";
  6. String name = "用户名";
  7. String password = "密码";
  8. con = DriverManager.getConnection(url, name, password);
  9. } catch (SQLException e) {
  10. e.printStackTrace();
  11. }
  12. if (con != null) {
  13. return true;
  14. } else {
  15. tv_ts1.post(() -> tv_ts1.setText("数据库未连接"));
  16. return false;
  17. }
  18. }

二、查询数据

  1. //查询并返回结果,查到结果的返回真,未查到结果返回假,结果赋给ResultSet变量rs
  2. private boolean rtnSQL(String sql) throws SQLException, ClassNotFoundException {
  3. if (conSQL()) {
  4. PreparedStatement ps = con.prepareStatement(sql);
  5. ps.execute();
  6. rs = ps.getResultSet();
  7. rs.last(); //移到最后一行
  8. int rowCount = rs.getRow(); //得到当前行号,也就是记录数
  9. if (rowCount > 0) {
  10. rs.beforeFirst(); //如果还要用结果集,就把指针再移到初始化的位置
  11. return true;
  12. } else {
  13. tv_ts1.post(() -> tv_ts1.setText("未查询到结果"));
  14. return false;
  15. }
  16. }
  17. return false;
  18. }

三、显示查询结果

  1. //处理查询结果
  2. @SuppressLint("SetTextI18n")
  3. private void rs_user() throws SQLException {
  4. rs.next();
  5. String a = rs.getString(1);
  6. String b = rs.getString(2);
  7. String c = rs.getString(3);
  8. String d = rs.getString(4);
  9. String f = rs.getString(6);
  10. String g = rs.getString(7);
  11. String h = rs.getString(8);
  12. tv_ts1.post(() -> tv_ts1.setText(a + "\n" + b + "\n" + c + "\n" + d + "\n" + f + "\n" + g + "\n" + h));
  13. }

综合:以下为全部代码

  1. package com.example.mysql;
  2. import androidx.appcompat.app.AppCompatActivity;
  3. import android.annotation.SuppressLint;
  4. import android.os.Bundle;
  5. import android.provider.Settings;
  6. import android.util.Log;
  7. import android.widget.Button;
  8. import android.widget.TextView;
  9. import java.sql.Connection;
  10. import java.sql.DriverManager;
  11. import java.sql.PreparedStatement;
  12. import java.sql.ResultSet;
  13. import java.sql.SQLException;
  14. public class MainActivity extends AppCompatActivity {
  15. TextView tv_ts1;
  16. Button btn_lj;
  17. Button btn_cx;
  18. Connection con = null;
  19. ResultSet rs = null;
  20. @Override
  21. protected void onCreate(Bundle savedInstanceState) {
  22. super.onCreate(savedInstanceState);
  23. setContentView(R.layout.activity_main);
  24. tv_ts1 = (TextView) findViewById(R.id.tv_ts1);
  25. btn_lj = (Button) findViewById(R.id.btn_lj);
  26. btn_cx = (Button) findViewById(R.id.btn_cx);
  27. btn_lj.setOnClickListener((v -> {
  28. new Thread(() -> {
  29. try {
  30. @SuppressLint("HardwareIds") String androidId = Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID);//获取机器码
  31. String sql="call DC_SVIP_App_InsertUser('19979162865','" + androidId + "');";
  32. Log.v("SQL",sql);
  33. boolean io2 = rtnSQL(sql);//执行SQL,并输出查询结果
  34. if(io2)
  35. rs_user();//处理查询结果
  36. } catch (SQLException | ClassNotFoundException e) {
  37. Log.v("SQL异常",e.getMessage());
  38. tv_ts1.post(() -> tv_ts1.setText(e.getMessage()));
  39. }
  40. }).start();
  41. }));
  42. }
  43. //处理查询结果
  44. @SuppressLint("SetTextI18n")
  45. private void rs_user() throws SQLException {
  46. rs.next();
  47. String a = rs.getString(1);
  48. String b = rs.getString(2);
  49. String c = rs.getString(3);
  50. String d = rs.getString(4);
  51. String f = rs.getString(6);
  52. String g = rs.getString(7);
  53. String h = rs.getString(8);
  54. tv_ts1.post(() -> tv_ts1.setText(a + "\n" + b + "\n" + c + "\n" + d + "\n" + f + "\n" + g + "\n" + h));
  55. }
  56. //查询并返回结果
  57. private boolean rtnSQL(String sql) throws SQLException, ClassNotFoundException {
  58. if (conSQL()) {
  59. PreparedStatement ps = con.prepareStatement(sql);
  60. ps.execute();
  61. rs = ps.getResultSet();
  62. rs.last(); //移到最后一行
  63. int rowCount = rs.getRow(); //得到当前行号,也就是记录数
  64. if (rowCount > 0) {
  65. rs.beforeFirst(); //如果还要用结果集,就把指针再移到初始化的位置
  66. return true;
  67. } else {
  68. tv_ts1.post(() -> tv_ts1.setText("未查询到结果"));
  69. return false;
  70. }
  71. }
  72. return false;
  73. }
  74. //连接数据库
  75. private boolean conSQL() throws ClassNotFoundException {
  76. Class.forName("com.mysql.jdbc.Driver");
  77. try {
  78. String url = "***";
  79. String name = "***";
  80. String password = "***";
  81. con = DriverManager.getConnection(url, name, password);
  82. } catch (SQLException e) {
  83. e.printStackTrace();
  84. }
  85. if (con != null) {
  86. return true;
  87. } else {
  88. tv_ts1.post(() -> tv_ts1.setText("数据库未连接"));
  89. return false;
  90. }
  91. }
  92. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/400743
推荐阅读
相关标签
  

闽ICP备14008679号