国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

關(guān)于Android Studio連接mysql數(shù)據(jù)庫(kù)的過(guò)程和注冊(cè)功能的實(shí)現(xiàn)(數(shù)據(jù)的插入)以及mysql環(huán)境變量的配置

這篇具有很好參考價(jià)值的文章主要介紹了關(guān)于Android Studio連接mysql數(shù)據(jù)庫(kù)的過(guò)程和注冊(cè)功能的實(shí)現(xiàn)(數(shù)據(jù)的插入)以及mysql環(huán)境變量的配置。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

1.安裝mysql數(shù)據(jù)庫(kù),安裝的教程嗶站有很多,版本盡量用mysql5.7的版本,用mysql8.0的版本與android studio進(jìn)行連接的話可能會(huì)出現(xiàn)問(wèn)題。

2.安裝完成之后,給本機(jī)配置環(huán)境變量,步驟:如下圖示

(1)通過(guò)搜索打開(kāi)環(huán)境變量。

android studio連接mysql實(shí)現(xiàn)登錄注冊(cè),數(shù)據(jù)庫(kù),android studio,mysql

(2).點(diǎn)擊環(huán)境變量。

android studio連接mysql實(shí)現(xiàn)登錄注冊(cè),數(shù)據(jù)庫(kù),android studio,mysql

(3).找到系統(tǒng)變量點(diǎn)擊新建。

android studio連接mysql實(shí)現(xiàn)登錄注冊(cè),數(shù)據(jù)庫(kù),android studio,mysql

(4).點(diǎn)擊新建之后輸入如下內(nèi)容,切記變量值是你的mysql安裝路徑。

android studio連接mysql實(shí)現(xiàn)登錄注冊(cè),數(shù)據(jù)庫(kù),android studio,mysql

(5).找到path路徑點(diǎn)擊進(jìn)入。

android studio連接mysql實(shí)現(xiàn)登錄注冊(cè),數(shù)據(jù)庫(kù),android studio,mysql

(6).新建一個(gè)關(guān)于mysql的環(huán)境變量,配置完后全部確定。

android studio連接mysql實(shí)現(xiàn)登錄注冊(cè),數(shù)據(jù)庫(kù),android studio,mysql

(7).進(jìn)行驗(yàn)證mysql數(shù)據(jù)庫(kù)是否安裝成功。按住電腦win+R輸入cmd命令進(jìn)入終端

輸入 mysql -uroot -p 命令,然后需要讓你輸入你在安裝mysql是設(shè)置的密碼,點(diǎn)擊回車(chē),

如果顯示如下圖這樣,說(shuō)明數(shù)據(jù)庫(kù)安裝完成,配置成功。

android studio連接mysql實(shí)現(xiàn)登錄注冊(cè),數(shù)據(jù)庫(kù),android studio,mysql

3.下載JDBC驅(qū)動(dòng)包在mysql官網(wǎng)下載進(jìn)行,版本同樣不要太高,用5.14版本的jdbc驅(qū)動(dòng)可以滿足mysql5.7的版本。下載完城之后解壓,找到如下圖文件并進(jìn)行復(fù)制。

android studio連接mysql實(shí)現(xiàn)登錄注冊(cè),數(shù)據(jù)庫(kù),android studio,mysql

4.將復(fù)制的文件粘貼到android studio中的libs夾文件中,點(diǎn)擊粘貼好的文件右擊顯示第二張圖的樣子,再點(diǎn)擊Add as Library...等待加載完成之后,出現(xiàn)第三張圖則表示你導(dǎo)入成功。

android studio連接mysql實(shí)現(xiàn)登錄注冊(cè),數(shù)據(jù)庫(kù),android studio,mysql

android studio連接mysql實(shí)現(xiàn)登錄注冊(cè),數(shù)據(jù)庫(kù),android studio,mysql

android studio連接mysql實(shí)現(xiàn)登錄注冊(cè),數(shù)據(jù)庫(kù),android studio,mysql

5.在android studio項(xiàng)目里創(chuàng)建一個(gè)JDBCUtil類(lèi),UserDaol類(lèi),MainActivity類(lèi)以及布局文件activity_main.xml。(注意:數(shù)據(jù)庫(kù)連接好之后需要?jiǎng)?chuàng)建一個(gè)新的用戶并且授予所有權(quán),同時(shí)還要新建一個(gè)數(shù)據(jù)庫(kù)dictionary以及在此數(shù)據(jù)庫(kù)下新建一個(gè)用戶表user才可以使用以下代碼,否則可能會(huì)出現(xiàn)問(wèn)題。)

JDBCUtil類(lèi):

(?private static final String URL = "jdbc:mysql://XXX.XXX.XXX.XXX:3306/dictionary?useUnicode=true&characterEncoding=utf-8&useSSL=false";)

此語(yǔ)句中的XXX.XXX.XXX.XXX代表電腦本機(jī)的ip地址,3306為端口號(hào)(一般都是這個(gè)),dictionary為mysql數(shù)據(jù)庫(kù)庫(kù)里面新建的一個(gè)名叫dictionary的數(shù)據(jù)庫(kù)。

(private static final String USER = "XXX";)此語(yǔ)句中的XXX代表使用數(shù)據(jù)庫(kù)的用戶名。

(private static final String PWD = "XXXX";)此語(yǔ)句中的XXXX代表用戶連接數(shù)據(jù)庫(kù)的密碼。

import android.util.Log;
import java.sql.Connection;
import java.sql.DriverManager;


public class JDBCUtil {
    private static final String CLS = "com.mysql.jdbc.Driver";
    private static final String URL = "jdbc:mysql://XXX.XXX.XXX.XXX:3306/dictionary?useUnicode=true&characterEncoding=utf-8&useSSL=false";
    private static final String USER = "XXX";
    private static final String PWD = "XXXX";
    private static Connection connection;

    //數(shù)據(jù)庫(kù)連接
    public static Connection getConn(){
        try{
            Class.forName(CLS);// 動(dòng)態(tài)加載類(lèi)
            // 嘗試建立到給定數(shù)據(jù)庫(kù)URL的連接
            connection = DriverManager.getConnection(URL, USER, PWD);
            Log.d("Dictionary","數(shù)據(jù)庫(kù)連接成功!");
        }catch (Exception e){
            e.printStackTrace();
            Log.d("Dictionary","數(shù)據(jù)庫(kù)連接失??!");
        }
        return connection;
    }
}

UserDao類(lèi):


import android.util.Log;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class UserDao {
    private Connection connection = null;
    private PreparedStatement pStmt = null;
    private ResultSet rs = null;

    //插入用戶信息
    public void insert(String name, String pwd, String phone, String status) {
        try {
            // 獲取數(shù)據(jù)庫(kù)連接
            connection = JDBCUtil.getConn();
            // 構(gòu)造SQL語(yǔ)句
            String sql = "insert into  user (name, pwd, phone,status) values (?, ?, ?, ?)";
            pStmt = connection.prepareStatement(sql);
            pStmt.setString(1, name);
            pStmt.setString(2, pwd);
            pStmt.setString(3, phone);
            pStmt.setString(4, status);
            // 執(zhí)行SQL語(yǔ)句
            pStmt.executeUpdate();
            Log.d("Dictionary", "數(shù)據(jù)插入成功!");
        } catch (SQLException e) {
            e.printStackTrace(); // 打印異常信息
            Log.d("Dictionary", "數(shù)據(jù)插入失敗!");
        } finally {
            try {
                connection.close();
                Log.d("Dictionary", "關(guān)閉數(shù)據(jù)庫(kù)成功!");
            } catch (SQLException e) {
                e.printStackTrace();
                Log.d("Dictionary", "關(guān)閉數(shù)據(jù)庫(kù)失?。?);
            }
        }
    }

    //登錄驗(yàn)證密碼以及身份(Verify 驗(yàn)證)
    public  boolean loginVerify(String name, String passWord,String status) {
        try {
            // 獲取數(shù)據(jù)庫(kù)連接
            connection = JDBCUtil.getConn();
            // 查詢表中的密碼
            String sql = "select pwd,status from user where name = ?";
            pStmt = connection.prepareStatement(sql);
            pStmt.setString(1, name);
            rs = pStmt.executeQuery();
            if (rs.next()) {
                // 比較查出的密碼和傳入的密碼是否相同
                String dbPwd = rs.getString("pwd");
                String dbStatus =rs.getString("status");

                Log.d("Dictionary", dbPwd);
                Log.d("Dictionary", dbStatus);
                Log.d("Dictionary", passWord);
                Log.d("Dictionary", status);
                return (dbPwd.equals(passWord))&&(dbStatus.equals(status));
            } else {
                return false; // 沒(méi)有找到對(duì)應(yīng)的名字和身份,返回false表示登錄失敗
            }
        } catch (SQLException e) {
            e.printStackTrace(); // 打印異常信息
            Log.d("Dictionary", "異常!?。?!");
            return false; // 發(fā)生異常,返回false表示登錄失敗
        } finally {
            try {
                connection.close();
                Log.d("Dictionary", "關(guān)閉數(shù)據(jù)庫(kù)成功!");
            } catch (SQLException e) {
                e.printStackTrace();
                Log.d("Dictionary", "關(guān)閉數(shù)據(jù)庫(kù)失敗!");
            }
        }
    }
}
MainActivity類(lèi):
?
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;

import java.sql.SQLException;

public class MainActivity extends AppCompatActivity {

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

        EditText userName = findViewById(R.id.userName);
        EditText passWord = findViewById(R.id.passWord);
        EditText phone = findViewById(R.id.phone);


        //按鈕監(jiān)聽(tīng)
        Button buttonRegister = this.findViewById(R.id.buttonRegister);
        buttonRegister.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View view) {
                String  name =ToolUtil.editTextToString(userName);
                String  pwd =ToolUtil.editTextToString(passWord);
                String  tel =ToolUtil.editTextToString(phone);
                String  status = JudgeStatus();
                Insert(name,pwd, tel,status);
                Toast.makeText(RegisterActivity.this, "注冊(cè)成功", Toast.LENGTH_SHORT).show();
             
            }
        });
    }
    //獲取用戶輸入的數(shù)據(jù)插入到mysql數(shù)據(jù)庫(kù)
    public void Insert( String name,String pwd ,String phone,String status){
        UserDao userDao = new UserDao();
        Thread thread= new Thread(new Runnable() {
            @Override
            public void run() {
                userDao.insert(name, pwd, phone, status);
            }
        });
        thread.start();
    }
    //判斷用戶選擇的身份
    public String JudgeStatus() {
        String status="";
        RadioGroup radioGroup = findViewById(R.id.radioGroup);
        for (int i = 0; i <radioGroup.getChildCount() ; i++) {
            RadioButton radioButton = (RadioButton)radioGroup.getChildAt(i);
            if (radioButton.isChecked()) {
               status = radioButton.getText().toString().trim();
            }
        }
        return  status;
    }
}

?

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="80dp"
        android:orientation="vertical"
        android:padding="60dp">

        <TextView
            android:id="@+id/registerTitle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_marginBottom="50dp"
            android:text="用戶注冊(cè)"
            android:textColor="#4A919D"
            android:textSize="30dp"
            android:textStyle="bold" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:padding="40dp">

            <EditText
                android:id="@+id/userName"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:hint="用戶名"
                android:inputType="textPersonName"
                android:padding="8dp"
                android:textSize="18dp" />

            <EditText
                android:id="@+id/passWord"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="15dp"
                
                android:ems="10"
                android:hint="密碼"
                android:inputType="textPassword"
                android:padding="8dp"
                android:textSize="18dp" />


            <EditText
                android:id="@+id/phone"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="15dp"
                
                android:ems="10"
                android:hint="電話"
                android:inputType="phone"
                android:padding="8dp"
                android:textSize="18dp" />

        </LinearLayout>

        <RadioGroup
            android:id="@+id/radioGroup"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="10dp"
            android:orientation="horizontal">

            <RadioButton
                android:id="@+id/radioButtonAdmin"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="20dp"
                android:text="admin"
                android:textSize="18dp" />

            <RadioButton
                android:id="@+id/radioButtonUser"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="90dp"
                android:text="user"
                android:textSize="18dp" />
        </RadioGroup>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="25dp"
            android:orientation="horizontal"
            android:padding="4dp">

  

            <Button
                android:id="@+id/buttonRegister"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="注冊(cè)"
                android:textSize="20dp" />

        </LinearLayout>


    </LinearLayout>

</RelativeLayout>

6.這個(gè)是最后的結(jié)果數(shù)據(jù)庫(kù)連接完成并且成功插入數(shù)據(jù)。

android studio連接mysql實(shí)現(xiàn)登錄注冊(cè),數(shù)據(jù)庫(kù),android studio,mysql

最后希望能通過(guò)這篇文章給予大家一點(diǎn)幫助,歡迎技術(shù)大佬能給予指正,有什么問(wèn)題歡迎大家積極留言。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-851039.html

到了這里,關(guān)于關(guān)于Android Studio連接mysql數(shù)據(jù)庫(kù)的過(guò)程和注冊(cè)功能的實(shí)現(xiàn)(數(shù)據(jù)的插入)以及mysql環(huán)境變量的配置的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Android Studio + sqllite 數(shù)據(jù)庫(kù)連接的步驟以及常見(jiàn)問(wèn)題

    Android Studio + sqllite 數(shù)據(jù)庫(kù)連接的步驟以及常見(jiàn)問(wèn)題

    軟件見(jiàn)文末 前提是先安裝好sqllite----無(wú)腦式next安裝 提示:.xml有些資源需要用自己有的,否者有可能會(huì)報(bào)錯(cuò)!?。?! 1、打開(kāi)SDK后,查看SDK路徑 2、在SDK路徑下右鍵鼠標(biāo)運(yùn)行命令行,輸入命令monitor,即可啟動(dòng)Android monitor Device如下圖所示: 執(zhí)行完monitor,正常情況下會(huì)直接跳轉(zhuǎn)

    2024年02月04日
    瀏覽(31)
  • 關(guān)于JAVA Maven項(xiàng)目連接mysql數(shù)據(jù)庫(kù)

    ? 本文作為個(gè)人學(xué)習(xí)筆記 此處使用8.0.28版本,關(guān)于mysql更多依賴版本查閱:https://mvnrepository.com/artifact/com.mysql/mysql-connector-j 1、指定驅(qū)動(dòng)器 本部分指定jdbc驅(qū)動(dòng)器類(lèi)名,使用Class.forName()以加載數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序 2、指定數(shù)據(jù)庫(kù) 本部分指定所需數(shù)據(jù)庫(kù)的url鏈接,(注:在測(cè)試過(guò)程中

    2024年04月12日
    瀏覽(19)
  • mysql面試題30:什么是數(shù)據(jù)庫(kù)連接池、應(yīng)用程序和數(shù)據(jù)庫(kù)建立連接的過(guò)程、為什么需要數(shù)據(jù)庫(kù)連接池、你知道哪些數(shù)據(jù)庫(kù)連接池

    mysql面試題30:什么是數(shù)據(jù)庫(kù)連接池、應(yīng)用程序和數(shù)據(jù)庫(kù)建立連接的過(guò)程、為什么需要數(shù)據(jù)庫(kù)連接池、你知道哪些數(shù)據(jù)庫(kù)連接池

    該文章專(zhuān)注于面試,面試只要回答關(guān)鍵點(diǎn)即可,不需要對(duì)框架有非常深入的回答,如果你想應(yīng)付面試,是足夠了,抓住關(guān)鍵點(diǎn) 數(shù)據(jù)庫(kù)連接池是一種用于管理和復(fù)用數(shù)據(jù)庫(kù)連接的技術(shù)。它是在應(yīng)用程序和數(shù)據(jù)庫(kù)之間建立一組數(shù)據(jù)庫(kù)連接,并以池的形式存儲(chǔ)起來(lái),每當(dāng)應(yīng)用程序需

    2024年02月07日
    瀏覽(31)
  • Android Studio鏈接數(shù)據(jù)庫(kù)(MySQL)步驟及問(wèn)題

    Android Studio鏈接數(shù)據(jù)庫(kù)(MySQL)步驟及問(wèn)題

    1、在libs加入jdbc,右鍵并選擇Add As Library 2、manifests中設(shè)置網(wǎng)絡(luò)權(quán)限。 寫(xiě)上 3、Android4.0以后版本不支持在主線程中執(zhí)行耗時(shí)操作,對(duì)數(shù)據(jù)庫(kù)的操作要新開(kāi)一個(gè)線程。 簡(jiǎn)單示例:(具體應(yīng)用涉及到線程數(shù)據(jù)傳遞) new Thread(new Runnable() { @Override public void run() { String CLS=“com.mysql.j

    2023年04月13日
    瀏覽(21)
  • Android 連接MySql數(shù)據(jù)庫(kù)步驟

    1.首先我們需要導(dǎo)入mysql驅(qū)動(dòng)jar包下載地址: ? 在android studio的build.gradle中插入 } 2、建立JDBCutils類(lèi) ? ?分析:jdbc:mysql://192.168.43.215:3306/user\\\",\\\"root\\\",\\\"1234\\\"語(yǔ)句 ? ?1、jdbc:mysql://基本格式 ? ?2、192.168.43.215你當(dāng)前連的網(wǎng)的Ipv4地址(可以在cmd命令窗口輸入ipconfig命令,找到你連的網(wǎng)(

    2024年02月05日
    瀏覽(23)
  • Android連接MySQL數(shù)據(jù)庫(kù)的方法

    Android連接MySQL數(shù)據(jù)庫(kù)的方法

    由于之前那篇文章是在大學(xué)期間好多東西都不太懂的時(shí)候?qū)懙模诺浆F(xiàn)在再來(lái)看總感覺(jué)到處都是問(wèn)題(或者說(shuō)已經(jīng)看不懂啦)。但是看到每天上漲的那點(diǎn)閱讀量,想了想還是把這個(gè)再用相對(duì)正常的方式再重寫(xiě)一遍吧。 為了省事本項(xiàng)目的服務(wù)端采用SpringBoot + MybatisPlus開(kāi)發(fā),要是

    2023年04月08日
    瀏覽(19)
  • Unity連接數(shù)據(jù)庫(kù)mysql全過(guò)程+可能遇到的問(wèn)題與解決方案

    Unity連接數(shù)據(jù)庫(kù)mysql全過(guò)程+可能遇到的問(wèn)題與解決方案

    目錄 一、具備條件 二、unity連接mysql 三、問(wèn)題總結(jié) 1. Mysql安裝完成 ????????安裝完成后需要查看mysql的版本,打開(kāi)終端(管理者身份運(yùn)行),輸入以下語(yǔ)句登錄mysql,查看MySQL版本; 可以看到我下載的版本是 5.7.38; 2. MySQL Connector/NET下載 目的:為了搭建unity連接mysql的環(huán)境

    2024年02月03日
    瀏覽(23)
  • Android Studio實(shí)現(xiàn)Mysql(5.7)數(shù)據(jù)庫(kù)增刪改查(上)——用戶登錄功能實(shí)現(xiàn)

    Android Studio實(shí)現(xiàn)Mysql(5.7)數(shù)據(jù)庫(kù)增刪改查(上)——用戶登錄功能實(shí)現(xiàn)

    前言:如果android studio安裝和第一次跑helloworld有什么問(wèn)題可以參考:(34條消息) Android Studio踩的那些坑(gradle build、unable to find tasks to···等等)_TidesWise的博客-CSDN博客 目錄 準(zhǔn)備工作 查詢學(xué)生數(shù)目demo:? 增刪改查完整案例 1、在Android Studio中新建項(xiàng)目My Application; 2、在Androi

    2024年02月10日
    瀏覽(19)
  • 【Android Studio】安卓APP期末作品記錄之連接sqlite數(shù)據(jù)庫(kù)以及簡(jiǎn)單的sqlite增刪改查

    【Android Studio】安卓APP期末作品記錄之連接sqlite數(shù)據(jù)庫(kù)以及簡(jiǎn)單的sqlite增刪改查

    期末作品要求使用數(shù)據(jù)庫(kù),我自己折騰了一會(huì),又看了很多博主發(fā)的文章,終于成功了,特此記錄:使用SQLiteDatabase和SQLiteOpenHelper連接已有sqlite數(shù)據(jù)庫(kù)。 第一步,導(dǎo)入sqlite數(shù)據(jù)庫(kù) 因?yàn)槲乙呀?jīng)創(chuàng)建好了一個(gè)sqlite數(shù)據(jù)庫(kù),所以第一步得將我的數(shù)據(jù)庫(kù)導(dǎo)入項(xiàng)目中 在app — src — ma

    2024年02月03日
    瀏覽(36)
  • Android Termux安裝MySQL數(shù)據(jù)庫(kù) | 公網(wǎng)安全遠(yuǎn)程連接【Cpolar內(nèi)網(wǎng)穿透】

    Android Termux安裝MySQL數(shù)據(jù)庫(kù) | 公網(wǎng)安全遠(yuǎn)程連接【Cpolar內(nèi)網(wǎng)穿透】

    轉(zhuǎn)載自cpolar極點(diǎn)云的文章:Android Termux安裝MySQL數(shù)據(jù)庫(kù) | 公網(wǎng)安全遠(yuǎn)程連接【Cpolar內(nèi)網(wǎng)穿透】 Android作為移動(dòng)設(shè)備,盡管最初并非設(shè)計(jì)為服務(wù)器,但是隨著技術(shù)的進(jìn)步我們可以將Android配置為生產(chǎn)力工具,變成一個(gè)隨身Linux。 MariaDB是MySQL關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)的一個(gè)復(fù)刻,由社區(qū)開(kāi)

    2024年02月01日
    瀏覽(25)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包