首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

安卓连mysql数据库的方式

安卓连接MySQL数据库的方式有多种,以下是其中两种常用的方式:

  1. 使用MySQL官方提供的JDBC驱动连接数据库: 在安卓开发中,可以通过引入MySQL官方提供的JDBC驱动来连接MySQL数据库。首先,在项目的build.gradle文件中添加以下依赖项:
代码语言:txt
复制
dependencies {
    implementation 'mysql:mysql-connector-java:8.0.26'
}

然后,在代码中使用以下示例代码连接MySQL数据库:

代码语言:txt
复制
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class MainActivity extends AppCompatActivity {
    private static final String DB_URL = "jdbc:mysql://<MySQL服务器地址>:<端口号>/<数据库名称>";
    private static final String DB_USER = "<用户名>";
    private static final String DB_PASSWORD = "<密码>";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        Connection conn = null;
        Statement stmt = null;
        ResultSet rs = null;
        
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
            stmt = conn.createStatement();
            String sql = "SELECT * FROM <表名>";
            rs = stmt.executeQuery(sql);
            
            while (rs.next()) {
                String column1 = rs.getString("column1");
                String column2 = rs.getString("column2");
                // 处理查询结果
            }
        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (rs != null) {
                    rs.close();
                }
                if (stmt != null) {
                    stmt.close();
                }
                if (conn != null) {
                    conn.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

需要替换<MySQL服务器地址><端口号><数据库名称><用户名><密码>为实际的数据库连接信息。

  1. 使用PHP脚本作为中间层连接数据库: 另一种方式是通过在安卓应用和MySQL数据库之间添加一个PHP脚本作为中间层来实现连接。首先,在服务器上创建一个PHP文件,例如connect.php,内容如下:
代码语言:txt
复制
<?php
$servername = "<MySQL服务器地址>";
$username = "<用户名>";
$password = "<密码>";
$dbname = "<数据库名称>";

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

$sql = "SELECT * FROM <表名>";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    while ($row = $result->fetch_assoc()) {
        $column1 = $row["column1"];
        $column2 = $row["column2"];
        // 处理查询结果
    }
} else {
    echo "0 结果";
}

$conn->close();
?>

然后,在安卓应用中使用以下示例代码发送HTTP请求访问该PHP脚本并获取数据库查询结果:

代码语言:txt
复制
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class MainActivity extends AppCompatActivity {
    private static final String PHP_SCRIPT_URL = "<PHP脚本的URL>";

    private TextView resultTextView;

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

        resultTextView = findViewById(R.id.result_text_view);

        new FetchDataAsyncTask().execute();
    }

    private class FetchDataAsyncTask extends AsyncTask<Void, Void, String> {
        @Override
        protected String doInBackground(Void... voids) {
            StringBuilder result = new StringBuilder();

            try {
                URL url = new URL(PHP_SCRIPT_URL);
                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                connection.setRequestMethod("GET");

                BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                String line;
                while ((line = reader.readLine()) != null) {
                    result.append(line);
                }
                reader.close();
            } catch (Exception e) {
                e.printStackTrace();
            }

            return result.toString();
        }

        @Override
        protected void onPostExecute(String result) {
            resultTextView.setText(result);
        }
    }
}

需要将<PHP脚本的URL>替换为实际的PHP脚本的URL。

这两种连接MySQL数据库的方式各有优劣,开发者可以根据具体需求和场景选择适合的方式。对于腾讯云的相关产品和产品介绍,可以参考腾讯云官方文档:https://cloud.tencent.com/document/product

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

共50个视频
MySQL数据库从入门到精通(外加34道作业题)(上)
动力节点Java培训
本套是MySQL数据库视频教程是动力节点教学总监杜老师讲述,其中详细讲解了MySQL的相关知识,包括MySQL概述,MySQL应用环境,MySQL系统特性,MySQL初学基础,MySQL管理工具,如何安装MySQL及MySQL新特性,通过观看本套Java视频教程就可掌握MySQL全套知识。
共45个视频
MySQL数据库从入门到精通(外加34道作业题)(下)
动力节点Java培训
本套是MySQL数据库视频教程是动力节点教学总监杜老师讲述,其中详细讲解了MySQL的相关知识,包括MySQL概述,MySQL应用环境,MySQL系统特性,MySQL初学基础,MySQL管理工具,如何安装MySQL及MySQL新特性,通过观看本套Java视频教程就可掌握MySQL全套知识。
共0个视频
Appium
点滴聚变
Appium是一个开源的,适用于原生或混合移动应用( hybrid mobile apps )的自动化测试工具,Appium应用WebDriver: JSON wire protocol驱动安卓和iOS移动应用。
共0个视频
2023云数据库技术沙龙
NineData
2023首届云数据库技术沙龙 MySQL x ClickHouse 专场,在杭州市海智中心成功举办。本次沙龙由玖章算术、菜根发展、良仓太炎共创联合主办。围绕“技术进化,让数据更智能”为主题,汇聚字节跳动、阿里云、玖章算术、华为云、腾讯云、百度的6位数据库领域专家,深入 MySQL x ClickHouse 的实践经验和技术趋势,结合企业级的真实场景落地案例,与广大技术爱好者一起交流分享。
共58个视频
《锋巢直播平台——基于腾讯云音视频小程序云直播互动平台》
腾讯云开发者社区
“直播+电商”作为一种新兴起的网购方式,一站式电商直播运营服务商,帮助企业快速切入直播带货赛道,高效获得流量变现。本课程是千锋与腾讯云合作共同研发精品课程,本视频使用腾讯即时通信IM+直播电商解决方案组件TLS,并涉及众多腾讯云产品,包括但不限于云直播,云数据库,Serverless,提供了一站式讲解,帮助大家迅速整合直播电商功能到自己的业务中。
领券