一种不使用PHP连接Android应用程序与数据库的解决方法是使用直接连接的方式,其中Android应用程序直接与数据库进行通信,而不需要通过中间层(如PHP)。
以下是一个使用Java语言直接连接MySQL数据库的示例代码:
dependencies {
implementation files('libs/mysql-connector-java-8.0.13.jar')
}
import android.os.AsyncTask;
import android.util.Log;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
public class DatabaseTask extends AsyncTask> {
private static final String TAG = "DatabaseTask";
private static final String DB_URL = "jdbc:mysql://your_database_url";
private static final String DB_USER = "your_username";
private static final String DB_PASSWORD = "your_password";
@Override
protected List doInBackground(Void... params) {
List resultList = new ArrayList<>();
try {
Connection connection = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("SELECT * FROM your_table");
while (resultSet.next()) {
String data = resultSet.getString("your_column");
resultList.add(data);
}
resultSet.close();
statement.close();
connection.close();
} catch (SQLException e) {
Log.e(TAG, "Database connection error: " + e.getMessage());
}
return resultList;
}
@Override
protected void onPostExecute(List resultList) {
// 处理查询结果
for (String data : resultList) {
Log.d(TAG, "Data: " + data);
}
}
}
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 其他代码...
DatabaseTask databaseTask = new DatabaseTask();
databaseTask.execute();
}
}
请注意,这只是一个简单的示例,你可能需要根据你的实际情况进行修改和扩展。另外,确保在使用数据库连接时使用合适的安全措施,如使用参数化查询来防止SQL注入攻击。
下一篇:不使用PHP内置函数打印数字