Android Studio链接数据库(MySQL)步骤及问题

一、步骤

1、在libs加入jdbc,右键并选择Add As Library
在这里插入图片描述在这里插入图片描述
2、manifests中设置网络权限。

在这里插入图片描述
写上

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

3、Android4.0以后版本不支持在主线程中执行耗时操作,对数据库的操作要新开一个线程。
简单示例:(具体应用涉及到线程数据传递)

new Thread(new Runnable() {
@Override
public void run() {
String CLS=“com.mysql.jdbc.Driver”;
String URL=“jdbc:mysql://IP地址:3306/数据库名?serverTimezone=UTC”;
String USER=“数据库用户名”;
String PWD=“数据库密码”;
String test=“”;
try {
Class.forName(CLS).newInstance();
Connection conn=(Connection) DriverManager.getConnection(URL,USER,PWD);
String sql=“要执行的sql语句”;
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery(sql);
while (rs.next()){
test+=rs.getString(“name”);
Log.v(“debug”,“AAAA”);
Log.v(“debug”,test);
}
} catch (ClassNotFoundException | SQLException | IllegalAccessException | InstantiationException e) {
e.printStackTrace();
}
}
}).start();

4、 因Android运行在模拟器上,访问数据库的ip不能是127.0.0.1或localhost,应该为本主机的IP地址,可以用win + r 输入 cmd内 用ipconfig查询本地IP。
在这里插入图片描述
5、mysql的用户要保证能有权限远程访问(用户要以@%结尾,怎么操作可以百度)
是否能远程访问可以用navicat测试,下图为没权限的root用户
在这里插入图片描述

二、遇到的问题

1、仔细看好mysql和jdbc的版本。一般5.6的mysql可以用mysql-connector-java-5.1.8等一些jdbc。但我尝试mysql8.0+版本与8.0+的jdbc连接不上数据库app闪退。8.0+的mysql也可以使用低版本的jdbc。

使用jdbc5+

Class.forName(“com.mysql.jdbc.Driver”);

使用jdbc8+,修改为

Class.forName(“com.mysql.cj.jdbc.Driver”);

2、一定注意远程访问权限的问题(上述)
3、要用主线程外的线程访问数据库(上述)

  • 8
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要使用 Android Studio 连接 MySQL 8.0 数据库,您可以使用以下步骤: 1. 在 MySQL 服务器上创建一个新用户,并授予该用户适当的权限以连接数据库。例如,您可以使用以下命令创建一个名为“new_user”的新用户并授予该用户访问名为“my_database”的数据库的权限: ``` CREATE USER 'new_user'@'%' IDENTIFIED WITH mysql_native_password BY 'password'; GRANT ALL PRIVILEGES ON my_database.* TO 'new_user'@'%'; ``` 在此示例中,“new_user”是新用户的名称,“password”是用户的密码,“my_database”是要访问的数据库的名称。注意,将“%”用作主机名将允许从任何主机连接数据库。如果您想限制访问,可以将“%”替换为特定的 IP 地址或主机名。 2. 在 Android Studio 中,打开项目并导航到“app”文件夹中的“build.gradle”文件。在该文件中添加以下依赖项: ``` implementation 'mysql:mysql-connector-java:8.0.27' ``` 这将允许您在项目中使用 MySQL 连接器。 3. 在您的 Java 代码中,使用以下代码连接MySQL 数据库: ``` try { Class.forName("com.mysql.cj.jdbc.Driver"); Connection connection = DriverManager.getConnection( "jdbc:mysql://<hostname>:<port>/<database_name>?user=<username>&password=<password>", "<username>", "<password>" ); // 执行数据库操作 } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); } ``` 在这里,您需要将以下值替换为适当的值: - `<hostname>`:MySQL 服务器的主机名或 IP 地址 - `<port>`:MySQL 服务器的端口号(默认为 3306) - `<database_name>`:要连接数据库的名称 - `<username>`:在第一步中创建的 MySQL 用户的用户名 - `<password>`:在第一步中为 MySQL 用户创建的密码 注意,在连接字符串中使用了 URL 编码,因此需要将用户名和密码传递两次。 希望这可以帮助您连接MySQL 8.0 数据库! ### 回答2: Android Studio连接MySQL 8.0需要完成以下几个步骤: 第一步:下载MySQL Connector/J 在MySQL官网上下载MySQL Connector/J,然后将其解压缩至Android Studio的项目目录下的app/libs文件夹中。然后在build.gradle中添加以下代码片段: dependencies { ... implementation files('libs/mysql-connector-java-8.0.13.jar') } 第二步:添加网络权限 在AndroidManifest.xml文件中添加以下代码: <uses-permission android:name="android.permission.INTERNET" /> 第三步:编写连接代码 在Android Studio的项目中创建一个Java类,命名为MySQLiteHelper。在MySQLiteHelper中编写以下代码,这段代码会连接MySQL数据库: import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class MySQLiteHelper { private static final String URL = "jdbc:mysql://数据库IP地址:端口号/数据库名?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC"; private static final String USER = "数据库用户名"; private static final String PASSWORD = "数据库密码"; private Connection connection; public Connection getConnection() { try { Class.forName("com.mysql.jdbc.Driver"); connection = DriverManager.getConnection(URL, USER, PASSWORD); System.out.println("Database connection success!"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return connection; } public void closeConnection() { try { connection.close(); System.out.println("Database connection close!"); } catch (SQLException e) { e.printStackTrace(); } } } 需要注意的是,其中的URL需要修改为自己的数据库IP地址、端口号和数据库名,USER和PASSWORD需要修改为自己的数据库用户名和密码。 第四步:调用连接代码 在需要连接数据库的Java类中调用MySQLiteHelper.getConnection()方法,连接MySQL数据库就完成了。 总结 Android Studio连接MySQL 8.0需要下载MySQL Connector/J,添加网络权限,编写连接代码,并在需要连接数据库的Java类中调用MySQLiteHelper.getConnection()方法。以上是连接MySQL 8.0的基本步骤,需要在实际开发中按照自己的需求进行修改和优化。 ### 回答3: 在Android Studio连接MySQL8.0需要进行如下步骤: 1.下载并安装MySQL Connector/J MySQL Connector/J是 MySQL 的一个官方 JDBC 驱动程序,它提供了在 Java 应用程序和 MySQL 数据库之间进行连接的功能。因此,在连接 MySQL 数据库之前,需要下载和安装MySQL Connector/J。 在完成下载后,将JAR文件拷贝到项目的libs文件夹下,然后在模块的build.gradle文件中添加以下声明: ``` dependencies { implementation files('libs/mysql-connector-java-8.0.26.jar') } ``` 2.添加网络连接权限 在AndroidManifest.xml 文件中添加以下声明,以获取网络连接权限: ``` <uses-permission android:name="android.permission.INTERNET" /> ``` 3.编写Java代码连接MySQL 在代码中,我们需要使用JDBC驱动程序创建一个数据库连接,然后使用此连接来执行查询语句和插入语句等操作。以下是一个简单的示例代码: ``` import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class MySQLConnect { public static void main(String[] args) { // MYSQL账户和密码以及使用的数据库名称 String url = "jdbc:mysql://localhost:3306/test"; //jdbc:mysql是驱动程序协议,localhost:3306是MYSQL服务器的IP地址和端口,test是连接数据库名称 String user = "root"; //MYSQL用户名 String password = "****"; //MYSQL密码 try { //加载JDBC连接器 Class.forName("com.mysql.cj.jdbc.Driver"); //创建一个连接 Connection connection = DriverManager.getConnection(url, user, password); //创建一个PreparedStatement对象,该对象可以避免SQL注入攻击 PreparedStatement preparedStatement = connection.prepareStatement("select * from students where Grade=?"); //使用PreparedStatement对象设置查询参数 preparedStatement.setString(1, "A"); //执行查询并返回结果 ResultSet resultSet = preparedStatement.executeQuery(); //遍历结果 while (resultSet.next()) { System.out.println(resultSet.getInt(1) + " " + resultSet.getString(2) + " " + resultSet.getString(3)); } //关闭ResultSet、PreparedStatement和Connection对象 resultSet.close(); preparedStatement.close(); connection.close(); } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); } } } ``` 通过以上步骤,就可以在Android Studio连接MySQL8.0数据库并执行常见的SQL操作了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值