1、使用JDBC驱动

配置JDBC驱动:在Android项目的build.gradle文件中添加JDBC驱动的依赖,例如使用MySQL的JDBC驱动。
dependencies {
implementation 'mysql:mysql-connector-java:8.0.23'
}
初始化数据库连接:在Android应用程序中,使用以下代码初始化数据库连接。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DatabaseHelper {
private static final String URL = "jdbc:mysql://your-database-url:3306/your-database-name";
private static final String USER = "your-username";
private static final String PASSWORD = "your-password";
public static Connection getConnection() {
Connection connection = null;
try {
Class.forName("com.mysql.cj.jdbc.Driver");
connection = DriverManager.getConnection(URL, USER, PASSWORD);
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
return connection;
}
}
执行SQL查询:建立连接后,可以使用Connection对象执行SQL查询。
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
public class QueryExecutor {
public void executeQuery() {
Connection connection = DatabaseHelper.getConnection();
if (connection != null) {
try {
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("SELECT * FROM your_table");
while (resultSet.next()) {
// 处理结果集
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
2、通过RESTful API连接MySQL
创建RESTful API服务:创建一个RESTful API服务来处理数据库操作,可以使用Spring Boot或任何其他Java框架来创建RESTful API。
搭建RESTful API服务器:选择一个服务器端技术(如Spring Boot、Node.js的Express、Python的Flask或Django),并配置数据库连接信息。
在Android应用中使用RESTful API:添加网络请求库,如Retrofit和Gson。

dependencies {
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
}
发送HTTP请求:通过Retrofit发送HTTP请求,从API获取数据。
import retrofit2.Call;
import retrofit2.http.GET;
import retrofit2.http.Path;
public interface ApiService {
@GET("/api/users")
Call<List<User>> getAllUsers();
@GET("/api/users/{id}")
Call<User> getUserById(@Path("id") long id);
}
3、通过ORM框架连接MySQL
配置ORM框架:在项目中配置ORM框架(如Room)的依赖,并定义实体类和DAO接口。
dependencies {
implementation "androidx.room:room-runtime:2.3.0"
annotationProcessor "androidx.room:room-compiler:2.3.0"
}
定义实体类和DAO接口:创建与数据库表对应的实体类,并定义数据访问对象(DAO)接口。
import androidx.room.Entity;
import androidx.room.PrimaryKey;
@Entity
public class User {
@PrimaryKey(autoGenerate = true)
public int id;
public String name;
public String email;
}
import androidx.room.Dao;
import androidx.room.Insert;
import androidx.room.Query;
import java.util.List;
@Dao
public interface UserDao {
@Insert
void insert(User user);
@Query("SELECT * FROM user")
List<User> getAll();
}
使用Room数据库:在应用程序中初始化Room数据库,并进行CRUD操作。
import androidx.room.Database;
import androidx.room.Room;
import androidx.room.RoomDatabase;
import android.content.Context;
@Database(entities = {User.class}, version = 1)
public abstract class AppDatabase extends RoomDatabase {
public abstract UserDao userDao();
}
public class MyApp extends Application {
private AppDatabase db;
@Override
public void onCreate() {
super.onCreate();
db = Room.databaseBuilder(getApplicationContext(), AppDatabase.class, "database-name").build();
}
public AppDatabase getDb() {
return db;
}
}
4、通过PHP中间件连接MySQL
编写PHP脚本:在服务器上编写PHP脚本管理数据连接,并从Android系统上使用HTTP协议运行这个脚本。

发送HTTP请求:在Android应用中通过HttpClient发送HTTP请求,将参数传递给PHP脚本,并接收返回的数据。
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Thread(new Runnable() {
@Override
public void run() {
try {
List<NameValuePair nameValuePairs = new ArrayList<>();
nameValuePairs.add(new BasicNameValuePair("year", "1980"));
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("http://example.com/getAllPeopleBornAfter.php");
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpClient.execute(httpPost);
HttpEntity entity = response.getEntity();
InputStream is = entity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "
");
}
is.close();
JSONArray jArray = new JSONArray(sb.toString());
for (int i = 0; i < jArray.length(); i++) {
JSONObject jsonObject = jArray.getJSONObject(i);
// 处理JSON数据
}
} catch (Exception e) {
Log.e("log_tag", "Error in http connection " + e.toString());
}
}
}).start();
}
}
相关问题与解答栏目:
1、为什么推荐使用RESTful API而不是直接使用JDBC驱动连接MySQL?
答: 使用RESTful API推荐的原因包括增强安全性和降低客户端复杂度,直接在Android应用中嵌入数据库连接信息和执行SQL语句是非常不安全的,因为APK文件可以被反编译,恶意用户可能会获取数据库的连接信息,而使用RESTful API,数据库连接信息和实际的SQL操作都存储在服务器端,客户端只需要通过API发送请求,服务器会根据请求进行相应的数据库操作,这样可以有效防止数据库信息泄露,通过RESTful API,客户端只需要处理HTTP请求和响应,大大简化了开发过程,提高了应用的维护性。
2、如何在Android项目中配置JDBC驱动以连接MySQL数据库?
答: 在Android项目中配置JDBC驱动以连接MySQL数据库的步骤如下:在项目的build.gradle文件中添加JDBC驱动的依赖,例如使用MySQL的JDBC驱动,在Android应用程序中加载JDBC驱动程序类,并通过DriverManager.getConnection方法创建与MySQL数据库的连接,使用Connection对象执行SQL查询或更新操作,需要注意的是,连接MySQL数据库可能涉及到网络访问,因此必须在Android应用程序的清单文件中声明android.permission.INTERNET权限,连接MySQL数据库也可能会导致长时间的网络操作,因此最好在Android应用程序的后台线程中执行数据库操作,以避免阻塞主线程。
以上内容就是解答有关“安卓连接mysql的方式”的详细内容了,我相信这篇文章可以为您解决一些疑惑,有任何问题欢迎留言反馈,谢谢阅读。