Android 连接MySql数据库步骤

1.首先我们需要导入mysql驱动jar包下载地址:

在android studio的build.gradle中插入

dependencies {
  
  
implementation 'mysql:mysql-connector-java:5.1.30'

}

2、建立JDBCutils类

public class JDBCutils {
    
    //第一步
    static {
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

    }
    //第二步
    public static Connection getConn() {
        Connection  conn = null;
        try {
            conn= DriverManager.getConnection("jdbc:mysql://192.168.43.215:3306/user","root","1234");//注意格式和空格
        }catch (Exception exception){
            exception.printStackTrace();
        }
        return conn;
    }

    public static void close(Connection conn){
        try {
            conn.close();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
    }

}

   分析:jdbc:mysql://192.168.43.215:3306/user","root","1234"语句

   1、jdbc:mysql://基本格式

   2、192.168.43.215你当前连的网的Ipv4地址(可以在cmd命令窗口输入ipconfig命令,找到你连的网(注意是你连的网)的Ipv4地址,我连的是自己的热点找"无线局域网适配器 WLAN:"下的ipv4)

    3、user是你mysql的建立的数据库名称

    4、root是mysql的用户名,1234是密码(可以在cmd命令窗口中输入 mysql -u root -p1234登入,如下结果是登录成功)

     5、注意这条语句要紧凑,中间不要出现空格否则会失败;

    

3、在AndroidManifest.xml中加一句

<uses-permission android:name="android.permission.INTERNET" />用于连接网络

4、建立Userdo类写sql语句(如下实现登录和注册功能)

public class UserDao {


    public boolean login(String name,String password) throws SQLException {

        String sql = "select * from users where name = ? and password = ?";

        Connection  con = JDBCutils.getConn();

        try {
            PreparedStatement pst=con.prepareStatement(sql);

            pst.setString(1,name);
            pst.setString(2,password);

            if(pst.executeQuery().next()){

                return true;

            }

        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        return false;
    }

    public boolean register(User user) throws SQLException {

        String sql = "insert into users(name,username,password,age,phone) values (?,?,?,?,?)";

        Connection  con = JDBCutils.getConn();

        try {
            PreparedStatement pst=con.prepareStatement(sql);

            pst.setString(1,user.getName());
            pst.setString(2,user.getUsername());
            pst.setString(3,user.getPassword());
            pst.setInt(4,user.getAge());
            pst.setString(5,user.getPhone());

            int value = pst.executeUpdate();

            if(value>0){
                return true;
            }


        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        return false;
    }

    public User findUser(String name) throws SQLException {

        String sql = "select * from users where name = ?";

        Connection  con = JDBCutils.getConn();
        User user = null;
        try {
            PreparedStatement pst=con.prepareStatement(sql);

            pst.setString(1,name);

            ResultSet rs = pst.executeQuery();

            while (rs.next()){

                int id = rs.getInt(0);
                String namedb = rs.getString(1);
                String username = rs.getString(2);
                String passworddb  = rs.getString(3);
                int age = rs.getInt(4);
                String phone = rs.getString(5);
                user = new User(id,namedb,username,passworddb,age,phone);
            }

        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        return user;
    }


}

5、建立User实体类

package com.example.plant.Object;

public class User {

    private int id;
    private String name;
    private String username;
    private String password;
    private int age;
    private String phone;


    public User() {
    }

    public User(int id, String name, String username, String password, int age, String phone) {
        this.id = id;
        this.name = name;
        this.username = username;
        this.password = password;
        this.age = age;
        this.phone = phone;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }
}

6、调用login或 register方法。

注意:在运行android studio的模拟器的时候可能会失败;

可能原因:

1、第一、二、三步有问题没有按照上面写;

2、你的模拟器版本是版本太高换android studio 9模拟器;

3、你看一下你的模拟器的wife是真的连上了;

也可以看看这个:

(9条消息) Android学习 ① Android连接不上Mysql数据库的多种原因以及解决方式_android mysql连接_林林zonzon的博客-CSDN博客

我的解决办法(可能有点投机取巧我直接用第三方模拟器):

1、安装模拟器(我用的是逍遥模拟器)

(9条消息) 教你在HbuilderX上使用模拟器运行uni-app,良心教学!!!_hbuilderx运行app_梦吉网络的博客-CSDN博客

2、在androis studio的控制台(Terminal)输入命令具体看这里(逍遥安卓模拟器:adb connect 127.0.0.1:21503)过一会

(9条消息) 新版androd studio怎样连接第三方模拟器_android studio怎么连接模拟器_1314.xinyx的博客-CSDN博客

其他关于模拟器联网失败:(我用了没用)

(9条消息) Android Studio模拟器无法连接网络_android虚拟机无法连接网络_ioT_wwhl的博客-CSDN博客

其他配置环境变量:

在用户变量和系统变量中的path设置sdk的路径找到adv(我的路径是这样的)

D:\Software\AndroidStudio\sdk\platform-tools

猜你喜欢

转载自blog.csdn.net/m0_62321937/article/details/129905218