在安卓界面中,使用JDBC连接Windows上的MySQL数据库,需要配置好数据库地址、用户名、密码等信息。
在安卓应用中连接MySQL数据库,可以使用Java语言和JDBC(Java Database Connectivity)技术,以下是详细的步骤:
1、添加MySQL JDBC驱动到项目中
需要在项目的build.gradle文件中添加MySQL JDBC驱动的依赖,在dependencies块中添加以下代码:
implementation 'mysql:mysqlconnectorjava:8.0.26'
2、创建数据库连接
创建一个名为DBHelper
的类,用于管理数据库连接,在这个类中,定义一个静态方法getConnection()
,用于获取数据库连接对象。
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DBHelper { private static final String URL = "jdbc:mysql://localhost:3306/your_database_name?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC"; 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; } }
注意:请将your_database_name
、your_username
和your_password
替换为实际的数据库名称、用户名和密码。
3、编写查询语句并执行
在需要执行数据库操作的地方,使用DBHelper.getConnection()
方法获取数据库连接对象,然后使用Statement
或PreparedStatement
对象执行查询语句。
查询表中的所有数据:
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 { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); List<String> dataList = getDataFromDatabase(); // 处理查询结果,例如显示在列表中 } private List<String> getDataFromDatabase() { List<String> dataList = new ArrayList<>(); Connection connection = null; Statement statement = null; ResultSet resultSet = null; try { connection = DBHelper.getConnection(); statement = connection.createStatement(); resultSet = statement.executeQuery("SELECT * FROM your_table_name"); while (resultSet.next()) { dataList.add(resultSet.getString("column_name")); // 根据实际表结构修改列名和类型 } } catch (SQLException e) { e.printStackTrace(); } finally { // 关闭资源,避免内存泄漏 if (resultSet != null) { try { resultSet.close(); } catch (SQLException e) { e.printStackTrace(); } } if (statement != null) { try { statement.close(); } catch (SQLException e) { e.printStackTrace(); } } if (connection != null) { try { connection.close(); } catch (SQLException e) { e.printStackTrace(); } } } return dataList; } }
注意:请将your_table_name
和column_name
替换为实际的表名和列名。