如何在安卓设备上成功连接并登录MySQL数据库?

下面是安卓连接MySQL登陆的详细步骤:

如何在安卓设备上成功连接并登录MySQL数据库?

1、开发环境的部署

程序结构

安卓端:Android Studio

服务器端:Tomcat

数据库:MySQL

服务器工具:MyEclipse

数据库工具:Navicat

网络权限配置:在AndroidManifest.xml中添加网络权限。

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

导入jar包:将mysql-connector-java-5.1.30-bin.jar导入项目的libs文件夹,并在build.gradle文件中添加依赖项。

     implementation files('src/main/libs/mysql-connector-java-5.1.30-bin.jar')

2、数据库设计

表名称student

如何在安卓设备上成功连接并登录MySQL数据库?

建表语句

     CREATE TABLEstudent (Id int(11) NOT NULL AUTO_INCREMENT,username char(20) NOT NULL DEFAULT '',password char(20) NOT NULL DEFAULT '',
       PRIMARY KEY (Id)
     ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

3、服务器端设计

新建Web Project:命名为HelloWeb,删除WebRoot的index.jsp。

项目结构图

LogLet类和RegLet类分别用于处理客户端的登录和注册请求。

Service类用于完成servlet对数据库的具体操作。

DBManager类用于进行数据库基本操作。

项目代码

DBManager.java

       package com.db;
       import java.sql.*;
       public class DBManager {
           // 数据库连接常量
           public static final String DRIVER = "com.mysql.jdbc.Driver";
           public static final String USER = "root";
           public static final String PASS = "root";
           public static final String URL = "jdbc:mysql://localhost:3306/test";
           // 静态成员,支持单态模式
           private static DBManager per = null;
           private Connection conn = null;
           private Statement stmt = null;
           // 单态模式-懒汉模式
           private DBManager() {}
           public static DBManager createInstance() {
               if (per == null) {
                   per = new DBManager();
                   per.initDB();
               }
               return per;
           }
           // 加载驱动
           public void initDB() {
               try {
                   Class.forName("com.mysql.jdbc.Driver");
               } catch (Exception e) {
                   e.printStackTrace();
               }
           }
           // 连接数据库,获取句柄+对象
           public void connectDB() {
               System.out.println("Connecting to database...");
               try {
                   conn = DriverManager.getConnection(URL, USER, PASS);
                   stmt = conn.createStatement();
               } catch (SQLException e) {
                   e.printStackTrace();
               }
               System.out.println("SqlManager:Connect to database successful.");
           }
           // 关闭数据库 关闭对象,释放句柄
           public void closeDB() {
               System.out.println("Close connection to database..");
               try {
                   stmt.close();
                   conn.close();
               } catch (SQLException e) {
                   e.printStackTrace();
               }
               System.out.println("Close connection successful");
           }
           // 查询
           public ResultSet executeQuery(String sql) {
               ResultSet rs = null;
               try {
                   rs = stmt.executeQuery(sql);
               } catch (SQLException e) {
                   e.printStackTrace();
               }
               return rs;
           }
           // 增添/删除/修改
           public int executeUpdate(String sql) {
               int ret = 0;
               try {
                   ret = stmt.executeUpdate(sql);
               } catch (SQLException e) {
                   e.printStackTrace();
               }
               return ret;
           }
       }

以下是与本文相关的两个问题及其解答:

1、如何确保Android设备能够连接到MySQL数据库?

如何在安卓设备上成功连接并登录MySQL数据库?

确保Android设备的网络权限已经开启,并且在AndroidManifest.xml中添加了以下权限:

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

确保MySQL数据库允许远程连接,并且防火墙设置允许相应的端口(默认是3306)通过,可以在MySQL配置文件中设置bind-address = 0.0.0.0来允许远程连接。

确保使用的IP地址和端口号是正确的,特别是在使用本地回环地址时,应该使用10.0.2.2而不是localhost127.0.0.1

确保MySQL用户名和密码正确无误。

2、如何处理Android与MySQL之间的数据交互?

通常通过HTTP协议进行通信,Android客户端发送HTTP请求到服务器端,服务器端处理请求并与MySQL数据库交互,然后将结果返回给Android客户端。

可以使用JSON格式来传输数据,这样可以方便地解析和处理数据,可以使用Gson库来序列化和反序列化JSON数据。

确保服务器端能够正确处理来自Android客户端的请求,并且能够根据请求类型执行相应的数据库操作(如查询、插入、更新、删除等)。

到此,以上就是小编对于“安卓连接mysql登陆”的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。