android studio2022.1.1版本进行MySql数据库的连接

首先下载的是MySqll的驱动,连接数据库的驱动版本有一定的要求,比如我的安卓版本是2022.1.1的,试过了所有的版本MySql连接驱动都不行,试了三天人都快疯了,最后发现5.1.8的驱动文件可以用。

链接:https://pan.baidu.com/s/1h51kWSxj5xLABgiFLdXm3g 
提取码:1234

将驱动文件复制后点击paste粘贴

 创建libs包存放外部包,导入成功

将驱动文件导入后点击Add As  Library即可

接下来到代码方面

 注意:主线程上进行网络连接操作会报错,而在Android中,主线程是UI线程,不允许进行耗时的网络操作。这可能导致应用程序崩溃或无法建立数据库连接。所以我们应该在后台线程上执行数据库连接操作。使用异步任务(AsyncTask)或线程(Thread)来在后台执行连接操作。这里使用AsyncTask。

private class ConnectToDatabaseTask extends AsyncTask<Void, Void, Connection> {
    @Override
    protected Connection doInBackground(Void... voids) {
        Connection connection = null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
        }
        return connection;
    }

    @Override
    protected void onPostExecute(Connection connection) {
        // 在连接完成后的回调方法中进行其他数据库操作
        if (connection != null) {
            // 进行其他数据库操作...
        }
    }
}

 在onCreate方法中,你可以使用以下代码启动异步任务:

new ConnectToDatabaseTask().execute();

这样就可以将数据库连接操作移至后台线程,避免了主线程上的网络操作异常。

请注意,为了确保数据库连接的安全性和性能,请务必遵循最佳实践,包括使用连接池、正确关闭数据库连接等。这里就先进行简单连接。

以下为数据库连接的完整代码:

import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;

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

public class MainActivity extends AppCompatActivity {

    private static final String URL = "jdbc:mysql://your_mysql_server_ip:port/your_database_name";
    private static final String USERNAME = "your_username";
    private static final String PASSWORD = "your_password";

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

        // 启动异步任务执行数据库连接操作
        ConnectToDatabaseTask connectTask = new ConnectToDatabaseTask();
        connectTask.execute();
    }

    private class ConnectToDatabaseTask extends AsyncTask<Void, Void, Connection> {

        @Override
        protected Connection doInBackground(Void... params) {
            Connection connection = null;
            try {
                Class.forName("com.mysql.jdbc.Driver");
                connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
            } catch (ClassNotFoundException | SQLException e) {
                e.printStackTrace();
            }
            return connection;
        }

        @Override
        protected void onPostExecute(Connection connection) {
            // 在连接完成后的回调方法中进行其他数据库操作
            if (connection != null) {
                // 进行其他数据库操作...
            }
        }
    }
}

这里简单测试一下数据库是否连接成功:

如果连接非空,则输出:你好

if (connection != null) {
                System.out.println("你好");
                // 进行其他数据库操作...
            }

连接成功

 附:要进行数据库的相关操作在,比如增删改查

if (connection != null) {
    System.out.println("你好");
    // 进行其他数据库操作...
}

以上就是进行数据库连接的操作

猜你喜欢

转载自blog.csdn.net/qq_74629570/article/details/131511716
今日推荐