今天我对Android studio连接mysql数据库实现web界面与Android手机端的信息传递做了一些工作     

                 我通过在网络查询,得知Android链接数据库需要5.xx以下版本的数据库,然后需要将打开数据库命令行,打开远程连接功能 GRANT ALL......   

然后再Android界面将jdbc放入到libs文件夹下,并且点击add as 将jdbc添加到本项目中,

在Android项目下的manfests项目里面添加数据库的网络权限,在

MainActivitiy项目中需要添加本机的ip地址,如果使用虚拟机,则使用10.0.2.2作为地址号,

package com.example.paiban;

import android.os.Bundle;
import android.util.Log;

import androidx.appcompat.app.AppCompatActivity;

import com.mysql.jdbc.Statement;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;

public class MainActivity extends AppCompatActivity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Connection.mymysql();

    }

    public class Connection {
        private static final String TAG = "mysql11111";
        java.sql.Connection conn=null;
        public static void mymysql(){
            final Thread thread =new Thread(new Runnable() {
                @Override
                public void run() {

                    while (!Thread.interrupted()) {
                        try {
                            Thread.sleep(100);  // 每隔0.1秒尝试连接
                        } catch (InterruptedException e) {
                            Log.e(TAG, e.toString());
                        }

// 1.加载JDBC驱动
                        try {
                            Class.forName("com.mysql.jdbc.Driver");
                            Log.v(TAG, "加载JDBC驱动成功");
                        } catch (ClassNotFoundException e) {
                            Log.e(TAG, "加载JDBC驱动失败");
                            return;
                        }

                        // 2.设置好IP/端口/数据库名/用户名/密码等必要的连接信息
                     String ip = "10.0.2.2";
                    int port = 3306;
                   String dbName = "jxp";
                   String url = "jdbc:mysql://" + ip + ":" + port
                            + "/" + dbName+"?useUnicode=true&characterEncoding=utf-8&useSSL=false";
                   // 构建连接mysql的字符串
                   String user = "root";
                  String password = "123456";


                        // 3.连接JDBC
                        try {
                            java.sql.Connection conn = DriverManager.getConnection(url, user, password);
                            Log.d(TAG, "数据库连接成功");
                            String sql = "select name from test";
                            Statement st = (Statement) conn.createStatement();
                            ResultSet rs = st.executeQuery(sql);
                            while (rs.next()) {
                                String jxp = rs.getString("name");
                                Log.i("MainActivity", jxp);
                            }
                            conn.close();
                            return;
                        }
                        catch (SQLException e) {
                            Log.e(TAG, e.getMessage());
                        }

                    }
                }
            });
            thread.start();



        }

    }



}

 

自此Android连接mysql数据库完成,web可以和android公用同一套数据库。         

 

 

 

 

posted on 2023-05-15 20:27  满山猩猩我脸最黑  阅读(31)  评论(0)    收藏  举报