Android Studio を mysql データベースに接続する方法

構成を使用します。

Android Studio Arctic Fox + Lollipop エミュレーター+ Navicat15 + mysql5.7.27 + mysql-connector-java-5.1.38.jar

mysqlのダウンロードアドレス

MySQL :: MySQL Community Server のダウンロード (アーカイブ バージョン)

選ぶ:

Windows (x86、64 ビット)、ZIP アーカイブ

1. ダウンロード後、解凍してお好きなファイルに入れ、環境設定のPATHパスにbinパッケージを追加してください。 

2. 管理者モードで cmd を開き、bin パッケージが配置されているディレクトリをインポートして、コマンド mysqld -install を使用します。(データベースのダウンロード)

3. コマンド mysqld -initialize を使用します。(データベースの初期化)

4. bin の上位フォルダーに戻り、データ フォルダーを含むいくつかのフォルダーを見つけて、クリックして入力し、err で終わるファイルを見つけて、メモ帳で 1 つずつ開き、見つける一時的なパスワードが生成されますroot@localhost:、その後に mysql の初期パスワード

 5. 管理者は cmd を開き、net start mysql と入力し、データベースを起動して、mysql -uroot -p password password new password と入力します。

6. 検証のために mysql -uroot -p の新しいパスワードを入力します. 検証が成功した場合, mysql 構成は完了です (リモート構成の別のステップがあり, Navicat で構成する必要があります)

Navicat ダウンロードアドレス

https://pan.baidu.com/s/1Xn_ddT8v3RgAihROPFcq_A?pwd=phu5 

ダウンロード後、プロンプトに従って構成します。ネットワークを切断することを忘れないでください。

設定後

1. connection-new connection-mysql をクリックし、任意の接続名を選択し、パスワードはデータベースのパスワードです. 入力が完了したら、左側の接続をダブルクリックします. 緑色に変わったら、接続は成功です.

2. 上記の「ユーザー」をクリックし、root@localhost をダブルクリックして、ホストを localhost から % に変更します。(1 台のマシンを使用する場合、この手順は省略できます)。

3. cmd を開き、ipconfig を入力し、独自の IPv4 アドレスを見つけ、Navicat で [接続] - [新しい接続] - [mysql] をクリックし、任意の接続名を選択します。パスワードはデータベースのパスワードであり、ホストは独自の IPv4 アドレスに変更されます。

mysql-connector-java-5.1.38.jarをダウンロードします

https://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.38

[ファイル] 列を見つけて、jar をダウンロードします。

Android Studio を構成する

1. プロジェクトを開き、jar パッケージをインポートし、ダウンロードした jar パッケージを project/app/libs に配置し、右クリックして [ライブラリとして追加] をクリックします。

2. 環境を構成し、AndroidManifest.xml に追加します。

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

3. クラスの作成 作成するクラスは、JDBCUtils、User、および UserDao の 3 つです。JDBCUtils はデータベースへの接続に使用され、User は情報ストレージ クラス、UserDao はデータベースとフロント エンド間の対話クラスです。

クラスを書く

JDBCUtils クラス: 

package utils;

import android.util.Log;

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

public class JDBCUtils {
    private static final String TAG = "mysql11111";
    static {

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

    }

    public static Connection getConn() {
        Connection  conn = null;
        try {
            conn= DriverManager.getConnection("jdbc:mysql://10.0.2.2:3306/lls?useUnicode=true&characterEncoding=utf-8&useSSL=false","root","123456");
            Log.d(TAG, "数据库连接成功");
        }catch (Exception exception){
            Log.d(TAG, "数据库连接失败");
            exception.printStackTrace();
        }
        return conn;
    }

    public static void close(Connection conn){
        try {
            conn.close();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
    }

}

後で問題が発生した場合は、以下の Logcat をクリックし、検索ボックスをクリックして、設定した TAG (ここでは mysql111111 に設定) を入力して、ドライバーが正常に動作し、接続が成功しているかどうかを確認できます。

上記の静的は駆動用です。getConn 関数は接続を取得するためのもので、接続に失敗した場合、返される conn は空です。

getConnection 関数の 10.0.2.2:3306/ はデータベース名です. ここでは、Navicat で独自の接続を開き、右クリックして接続し、データベースを作成する必要があります. 次の 2 つの変数は、ユーザー名とパスワードです。

close 関数は、データベースを閉じます。

ユーザークラス:

package entity;

public class User {

    private int id;
    private String name;
    private int age;
    private String password;
    private String phone_number;
    private String address;

    public User(){
    }

    public User(int id,String name,int age,String password,String phone_number,String address){
        this.id=id;
        this.name=name;
        this.age=age;
        this.password=password;
        this.phone_number=phone_number;
        this.address=address;
    }

    public int getId(){
        return id;
    }
    public void setId(int id){
        this.id=id;
    }

    public String getName(){
        return name;
    }
    public void setName(String name){
        this.name=name;
    }

    public int getAge(){
        return age;
    }
    public void setAge(int age){
        this.age=age;
    }

    public String getPassword(){
        return password;
    }
    public void setPassword(String password){
        this.password=password;
    }

    public String getPhone_number(){
        return phone_number;
    }
    public void setPhone_number(String phone_number){
        this.phone_number=phone_number;
    }

    public String getAddress(){
        return address;
    }
    public void setAddress(String address){
        this.address=address;
    }
}

ユーザー情報を格納するクラスであることは明らかで、言うことはありません。

ユーザーダオ:

package dao;

import entity.User;
import utils.JDBCUtils;

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

public class UserDao {
    public boolean login(String phone_number,String password){
        
        String sql = "select * from users where phone_number = ? and password = ?";

        Connection  con = JDBCUtils.getConn();

        try {
            PreparedStatement pst=con.prepareStatement(sql);

            pst.setString(1,phone_number);
            pst.setString(2,password);

            if(pst.executeQuery().next()){

                return true;

            }

        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }finally {
            JDBCUtils.close(con);
        }

        return false;
    }

    public User findUser(String name){

        String sql = "select * from users where name = ?";

        Connection  con = JDBCUtils.getConn();
        User user = null;
        try {
            PreparedStatement pst=con.prepareStatement(sql);

            pst.setString(1,name);

            ResultSet rs = pst.executeQuery();

            while (rs.next()){

                int id = rs.getInt(0);
                String namedb = rs.getString(1);
                int age = rs.getInt(2);
                String passworddb  = rs.getString(3);
                String phone_number = rs.getString(4);
                String address = rs.getString(5);
                user = new User(id,namedb,age,passworddb,phone_number,address);
            }

        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }finally {
            JDBCUtils.close(con);
        }

        return user;
    }
    public User findPhone_number(String phone_number){

        String sql = "select * from users where phone_number = ?";

        Connection  con = JDBCUtils.getConn();
        User user = null;
        try {
            PreparedStatement pst=con.prepareStatement(sql);

            pst.setString(1,phone_number);

            ResultSet rs = pst.executeQuery();

            while (rs.next()){

                int id = rs.getInt(0);
                String namedb = rs.getString(1);
                int age = rs.getInt(2);
                String passworddb  = rs.getString(3);
                String phone_numberdb = rs.getString(4);
                String address = rs.getString(5);
                user = new User(id,namedb,age,passworddb,phone_numberdb,address);
            }

        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }finally {
            JDBCUtils.close(con);
        }

        return user;
    }
}

設計された関数がlogin、findUserなどのページ構築で使用される最も基本的な関数であっても、ここでは主にsqlステートメントを使用して、少し文法を学ぶことができます. ページを構築するプロセスでは、このクラスでこれらの関数を呼び出すだけで済みます。

おすすめ

転載: blog.csdn.net/qq_51135645/article/details/127146552