|
在Android中访问电脑数据库,可以使用以下步骤:
zbhjw3c5cvf4tsd.png
(图片来源网络,侵删)
1、安装MySQL JDBC驱动
首先需要在电脑上安装MySQL数据库,并下载对应的JDBC驱动(mysqlconnectorjava),将下载的jar包放到项目的libs目录下。
2、添加网络权限
在AndroidManifest.xml文件中添加网络权限:
“`xml
“`
3、编写代码连接数据库
创建一个类(如DBHelper),用于连接数据库:
“`java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class DBHelper {
private static final String URL = "jdbc:mysql://电脑IP地址:端口号/数据库名";
private static final String USER = "用户名";
private static final String PASSWORD = "密码";
public static Connection getConnection() {
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(URL, USER, PASSWORD);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
}
“`
4、查询数据
在需要查询数据的Activity中,调用DBHelper类的getConnection方法获取数据库连接,然后执行SQL语句并处理结果集:
“`java
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import androidx.appcompat.app.AppCompatActivity;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private ListView listView;
private List dataList = new ArrayList();
private ArrayAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = findViewById(R.id.listView);
adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, dataList);
listView.setAdapter(adapter);
getDataFromDB();
}
private void getDataFromDB() {
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
try {
connection = DBHelper.getConnection();
statement = connection.createStatement();
resultSet = statement.executeQuery("SELECT * FROM tableName");
while (resultSet.next()) {
String data = resultSet.getString("columnName"); // 根据实际表结构修改列名和类型
dataList.add(data);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (resultSet != null) {
resultSet.close();
}
if (statement != null) {
statement.close();
}
if (connection != null) {
connection.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
adapter.notifyDataSetChanged(); // 刷新列表显示数据更新后的结果集内容,如果数据没有变化,可以省略这一步。 |
|