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

Android studio連接mysql數(shù)據(jù)庫

這篇具有很好參考價值的文章主要介紹了Android studio連接mysql數(shù)據(jù)庫。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


前言

??用Android studio連接Navicat Premium 16管理的mysql,我安裝的是mysql5.7.19版本,用的包是mysql-connector-java-5.1.49-bin.jar。
??在開始連接前請務(wù)必確保MySQL版本不是8.0及以上的版本?。》駝t會一直報錯無法創(chuàng)建連接。
??jar包也盡量選擇低一些的版本,高版本我沒試過,據(jù)說新版不太穩(wěn)定不支持也會報錯。


環(huán)境配置:

一,mysql下載地址:https://downloads.mysql.com/archives/community
二,Navicat Premium 16安裝地址:https://www.downkuai.com/soft/161548.html
三,mysql-connector-java-5.1.49-bin.jar下載地址:https://downloads.mysql.com/archives/c-j/


一、Android studio連接mysql數(shù)據(jù)庫

1.配置Android Studio

  • 打開項目,導入jar包,將下載的jar包放入項目/app/libs內(nèi),右鍵,點擊Add As Library。
    安卓studio連接mysql數(shù)據(jù)庫,數(shù)據(jù)庫,android studio,mysql

  • 配置環(huán)境,在AndroidManifest.xml中加入以下代碼來獲取網(wǎng)絡(luò)訪問權(quán)限。

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

2.mysql設(shè)置權(quán)限

  • 在Navicat Premium 16中點擊連接選擇mysql,輸入自己的mysql密碼創(chuàng)建連接,主機或IP地址要填寫自己電腦的IPv4地址,雙擊選中。
    不知道地址的可以cmd打開命令提示符,輸入ipconfig,找到自己的iPv4地址
    安卓studio連接mysql數(shù)據(jù)庫,數(shù)據(jù)庫,android studio,mysql
  • 管理員權(quán)限運行命令提示符,進入mysql所在的文件夾進入mysql,輸入密碼登錄你的賬號,輸入以下代碼表示增加新用戶,bya是用戶名,123456是明文密碼,%表示能夠在任何機器上登陸mysql,
d:										//進入D盤
cd D:\mysql\mysql-5.7.19-winx64\bin		//進入mysql在的文件夾
mysql -u RCQ -p							//登錄賬號 RCQ要替換為自己的用戶名
123456									//輸入自己的密碼
GRANT ALL PRIVILEGES ON *.* TO 'bya'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

??顯示ok則表示添加成功
安卓studio連接mysql數(shù)據(jù)庫,數(shù)據(jù)庫,android studio,mysql

  • 在Navicat Premium 16中點擊用戶,新建用戶,用戶名和密碼要和剛添加mysql用戶時的用戶名和密碼一致,最后點擊保存即可。
    安卓studio連接mysql數(shù)據(jù)庫,數(shù)據(jù)庫,android studio,mysql

二、在Android studio進行測試

創(chuàng)建表和數(shù)據(jù)

  • 在Navicat Premium 16中創(chuàng)建數(shù)據(jù)庫demo,創(chuàng)建表user,再編寫幾個數(shù)據(jù),因為是測試,所以我就寫了四個屬性。
    表結(jié)構(gòu)為:
    安卓studio連接mysql數(shù)據(jù)庫,數(shù)據(jù)庫,android studio,mysql
    表數(shù)據(jù)為:
    安卓studio連接mysql數(shù)據(jù)庫,數(shù)據(jù)庫,android studio,mysql

編寫代碼進行測試

  • 在Android studio中編寫代碼進行測試
    ??一共要編寫三個java文件:JDBCUtils,UserDao和MainActivity.java。JDBCUtils用于連接數(shù)據(jù)庫,UserDao是數(shù)據(jù)庫與前端交互類,MainActivity.java是應(yīng)用主頁面的實現(xiàn)代碼。
    ??本來應(yīng)該再寫一個User是信息存儲類的,但是因為這是簡單的測試就沒有寫,直接在代碼里定義好數(shù)據(jù)直接進行查詢和插入數(shù)據(jù)
    JDBCUtils類:
package com.example.androidpractice.Utils;

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

/**
 * function: 數(shù)據(jù)庫工具類,連接數(shù)據(jù)庫用
 */
public class JDBCUtils {
    private static final String TAG = "mysql-party-JDBCUtils";
    private static String driver = "com.mysql.jdbc.Driver";// MySql驅(qū)動
    private static String dbName = "demo";// 數(shù)據(jù)庫名稱
    private static String user = "bya";// 用戶名
    private static String password = "123456";// 密碼
    public static Connection getConn(){
        Connection connection = null;
        try{
            Class.forName(driver);// 動態(tài)加載類
            String ip = "10.73.146.38";// 寫成本機地址,不能寫成localhost,
            // 嘗試建立到給定數(shù)據(jù)庫URL的連接
            connection = DriverManager.getConnection("jdbc:mysql://" + ip + ":3306/" + dbName,
                    user, password);
            Log.d("ning","數(shù)據(jù)庫連接成功!");
        }catch (Exception e){
            e.printStackTrace();
            Log.d("ning","數(shù)據(jù)庫連接失??!");
        }
        return connection;
    }
}

UserDao.java類:

package com.example.androidpractice.dao;

import android.util.Log;
import com.example.androidpractice.Utils.JDBCUtils;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 * author: 白易安
 * date: 2023.08.05
 * **/
public class UserDao {

    //根據(jù)傳入的賬號查詢數(shù)據(jù)庫對應(yīng)的密碼,再與傳入的密碼進行對比
    public  boolean loginup(String account, String password) {
        Connection connection = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        try {
            // 獲取數(shù)據(jù)庫連接
            connection = JDBCUtils.getConn();
            Log.d("ning","賬號:" + account);
            // 查詢表中的密碼
            String sql = "SELECT password FROM user WHERE account = ?";
            pstmt = connection.prepareStatement(sql);
            pstmt.setString(1, account);
            rs = pstmt.executeQuery();
            if (rs.next()) {
                // 比較查出的密碼和傳入的密碼是否相同
                String dbPassword = rs.getString("password");
                Log.d("ning","密碼:" + dbPassword);
                return dbPassword.equals(password);
            } else {
                return false; // 沒有找到對應(yīng)的賬號,返回false表示登錄失敗
            }
        } catch (SQLException e) {
            e.printStackTrace(); // 打印異常信息
            return false; // 發(fā)生異常,返回false表示登錄失敗
        } finally {
            // 關(guān)閉資源
            try {
                connection.close();
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }
    }
    //插入數(shù)據(jù)
    public  void insert(String account, String password, String name) {
        Connection connection = null;
        PreparedStatement pstmt = null;
        try {
            // 獲取數(shù)據(jù)庫連接
            connection = JDBCUtils.getConn();
            // 構(gòu)造SQL語句
            String sql = "INSERT INTO user (account, password, name) VALUES (?, ?, ?)";
            pstmt = connection.prepareStatement(sql);
            pstmt.setString(1, account);
            pstmt.setString(2, password);
            pstmt.setString(3, name);
            // 執(zhí)行SQL語句
            pstmt.executeUpdate();
            Log.d("ning","插入數(shù)據(jù)成功!");
        } catch (SQLException e) {
            e.printStackTrace(); // 打印異常信息
            Log.d("ning","插入數(shù)據(jù)失敗!");
        } finally {
            // 關(guān)閉資源
            try {
                connection.close();
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }
    }

}

MainActivity.java:

package com.example.androidpractice;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.os.StrictMode;
import android.util.Log;
import com.example.androidpractice.dao.UserDao;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        String account="17374517111";
        String password="111111";
        String account1="17374517444";
        String password1="111111444";
        String name="d";
        UserDao dao=new UserDao();
        boolean up=false;
        if (android.os.Build.VERSION.SDK_INT > 9) {
            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
            StrictMode.setThreadPolicy(policy);
            up=dao.loginup(account,password);
            dao.insert(account1,password1,name);

        }
        if (up==true){
            Log.d("ning","登錄成功");
        }else {
            Log.d("ning","登錄失敗");
        }
    }
}

主線程不能進行網(wǎng)絡(luò)操作問題

  • 其中剛運行是還是報錯,查找了錯誤原因為:在主線程中執(zhí)行了網(wǎng)絡(luò)操作,這是不允許的。為了解決這個問題,你需要將網(wǎng)絡(luò)操作放到子線程中執(zhí)行。
  • 我使用了一下代碼來解決這個報錯:
if (android.os.Build.VERSION.SDK_INT > 9) {
    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
    StrictMode.setThreadPolicy(policy);
}

??這段代碼是在Android應(yīng)用中使用的,用于在Android 10(API級別29)及更高版本上啟用StrictMode。StrictMode是一個用于檢測應(yīng)用程序中可能的內(nèi)存泄漏、死鎖等問題的工具。
代碼解析:
??1,首先檢查當前設(shè)備的Android版本是否大于9(即API級別29),因為從Android 10開始,StrictMode才默認啟用。
??2,如果設(shè)備版本大于9,則創(chuàng)建一個StrictMode.ThreadPolicy對象,允許所有線程執(zhí)行。
??3,最后,使用setThreadPolicy方法將創(chuàng)建的策略設(shè)置為當前線程的策略。


總結(jié)

??因為才學Android沒多久,看的課程Android studio只有連接自帶的sqlite沒有通過網(wǎng)絡(luò)訪問mysql數(shù)據(jù)庫這部分,所以自己搜索著解決了一下,最后那個解決報錯的方法肯定不適用于很多情況,還需要在找一些其他方法,我問了AI說可以使用AsyncTask或者Thread來解決,但是還沒有試。
??繼續(xù)學習,加油!文章來源地址http://www.zghlxwxcb.cn/news/detail-774929.html

到了這里,關(guān)于Android studio連接mysql數(shù)據(jù)庫的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • Android studio 連接SQLite數(shù)據(jù)庫 +創(chuàng)建數(shù)據(jù)庫+創(chuàng)建數(shù)據(jù)庫表

    Android studio 連接SQLite數(shù)據(jù)庫 +創(chuàng)建數(shù)據(jù)庫+創(chuàng)建數(shù)據(jù)庫表

    Android studio 之數(shù)據(jù)庫的使用 連接創(chuàng)建SQLite 大家好,歡迎來到寒依。 相信看啦我的教程 當老師問你在學習Android studio 數(shù)據(jù)庫使用過程中遇到什么困難,分享一下你的感悟和解決方法 的時候,你可以直接大膽的說出來: “老師我沒有遇到問題,看啦寒依的教程 暢行無阻” 我

    2024年02月02日
    瀏覽(35)
  • 安卓大作業(yè):使用Android Studio開發(fā)天氣預報APP(使用sqlite數(shù)據(jù)庫)

    安卓大作業(yè):使用Android Studio開發(fā)天氣預報APP(使用sqlite數(shù)據(jù)庫)

    今天我來分享一下如何使用Android Studio開發(fā)一個天氣預報APP。在文中,我們將使用第三方接口獲取實時天氣數(shù)據(jù),并顯示在APP界面上。 首先,打開Android Studio并創(chuàng)建一個新的項目。在創(chuàng)建新項目時,我們需要設(shè)置項目名稱、包名和支持的最低API級別。 為了獲取實時天氣數(shù)據(jù),

    2024年02月08日
    瀏覽(31)
  • Android Studio + sqllite 數(shù)據(jù)庫連接的步驟以及常見問題

    Android Studio + sqllite 數(shù)據(jù)庫連接的步驟以及常見問題

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

    2024年02月04日
    瀏覽(32)
  • Android Studio鏈接數(shù)據(jù)庫(MySQL)步驟及問題

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

    1、在libs加入jdbc,右鍵并選擇Add As Library 2、manifests中設(shè)置網(wǎng)絡(luò)權(quán)限。 寫上 3、Android4.0以后版本不支持在主線程中執(zhí)行耗時操作,對數(shù)據(jù)庫的操作要新開一個線程。 簡單示例:(具體應(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ù)庫步驟

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

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

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

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

    2023年04月08日
    瀏覽(20)
  • Android Studio實現(xiàn)Mysql(5.7)數(shù)據(jù)庫增刪改查(上)——用戶登錄功能實現(xiàn)

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

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

    2024年02月10日
    瀏覽(19)
  • Android:安卓開發(fā)采用Volley網(wǎng)絡(luò)框架+MySQL數(shù)據(jù)庫,實現(xiàn)從服務(wù)器獲取數(shù)據(jù)并展示完成記單詞APP

    Android:安卓開發(fā)采用Volley網(wǎng)絡(luò)框架+MySQL數(shù)據(jù)庫,實現(xiàn)從服務(wù)器獲取數(shù)據(jù)并展示完成記單詞APP

    實現(xiàn)功能:設(shè)計一個記單詞APP。服務(wù)器采用Tomcat,數(shù)據(jù)庫采用Mysql。實現(xiàn)用戶的注冊登錄功能以及單詞的增刪改查。 指標要求:實現(xiàn)UI布局;將系統(tǒng)數(shù)據(jù)保存到Mysql數(shù)據(jù)庫中,并采用Volley網(wǎng)絡(luò)框架實現(xiàn)從服務(wù)器獲取數(shù)據(jù)并展示。 步驟1:搭建開發(fā)環(huán)境。 步驟2:準備資源。 步驟

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

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

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

    2024年02月01日
    瀏覽(26)
  • Android+阿里云數(shù)據(jù)庫,實現(xiàn)安卓云數(shù)據(jù)庫

    Android+阿里云數(shù)據(jù)庫,實現(xiàn)安卓云數(shù)據(jù)庫

    目錄 阿里云部分 Adnroid配置部分 Android代碼部分 效果 在阿里云中查看已保存的數(shù)據(jù) 進入阿里云首頁,這里選擇的是 云數(shù)據(jù)庫RDS?MySQL版 。 購買完成后,點擊 控制臺 。 點擊 “云數(shù)據(jù)庫RDS版” 點擊 實例列表 點擊 實例ID 接下來是 設(shè)置白名單 。 測試的話,設(shè)置為 0.0.0.0/0 就可

    2024年02月05日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包