首先下载的是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("你好"); // 进行其他数据库操作... }
以上就是进行数据库连接的操作