zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

Android studio连接mysql(能踩的坑都踩了)

2023-04-18 14:28:51 时间

1.都看到这儿了,听我一句劝,mysql版本是8.xxx的就可以卸载重装5.xxx的了(不要侥幸)

2.Android studio用mysql-connector-java用8.xxx的不行,一直报错,原因未知,目前没有教程解决这个问题。所以只能降低mysql的版本。

安装MySQL

安装MySQL:安装教程

1.建议就按照这个教程走,方便后面使用改数据(直接改my.ini),不要直接运行安装程序点点点。

2.安装命令是mysqld install;不是mysql install。一定注意别少了'd',(我手贱自己手敲命令,一直报错,还搜不到原因,还眼瞎在这卡了一天,)

3.安装成功后登录,不要输:mysql -uroot -p密码。要先输:mysql -uroot -p,回车,然后输密码。

4.改密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

5.开启远程连接:

 1. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' ;
 2. flush privileges; 

 

配置mysql-connector-java

1.下载mysql-connector-java

mysql-connector-java各种版本下载地址:链接

mysql与connector版本对照表:链接

5.7的mysql用5.1的connector就行

加载mysql-connector-java到Android中

将下载好的mysql-connector-java包放入项目中的lib文件夹中,如图:


一定要点Add As Library,才能加载成功。 

代码

链接数据库只能在子线程中运行,所以一个MainActivity,一个工具类Connection。

(代码网上很多,这个也是抄的,我也不记得抄的谁的了,亲测能用)

public class MainActivity extends AppCompatActivity {



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Connection.mymysql();

    }

public class Connection {
    private static final String TAG = "mysql11111";
    java.sql.Connection conn=null;
    public static void mymysql(){
        final Thread thread =new Thread(new Runnable() {
            @Override
            public void run() {

                while (!Thread.interrupted()) {
                    try {
                        Thread.sleep(100);  // 每隔0.1秒尝试连接
                    } catch (InterruptedException e) {
                        Log.e(TAG, e.toString());
                    }

// 1.加载JDBC驱动
                    try {
                        Class.forName("com.mysql.jdbc.Driver");
                        Log.v(TAG, "加载JDBC驱动成功");
                    } catch (ClassNotFoundException e) {
                        Log.e(TAG, "加载JDBC驱动失败");
                        return;
                    }

                    // 2.设置好IP/端口/数据库名/用户名/密码等必要的连接信息
                    String ip = "192.168.43.97";
                    int port = 3306;
                    String dbName = "mysql";
                    String url = "jdbc:mysql://" + ip + ":" + port
                            + "/" + dbName+"?useUnicode=true&characterEncoding=utf-8&useSSL=false";
                    // 构建连接mysql的字符串
                    String user = "root";
                    String password = "lyx123";

                    // 3.连接JDBC
                    try {
                        java.sql.Connection conn = DriverManager.getConnection(url, user, password);
                        Log.d(TAG, "数据库连接成功");
                        conn.close();
                        return;
                    }
                    catch (SQLException e) {
                        Log.e(TAG, e.getMessage());
                    }

                }
            }
        });
        thread.start();



    }

}

1.记得改ip(数据库运行的电脑的ip)、数据库名(dbname)、用户名和密码(user、password)。

2.url中部分文章没有加"?useUnicode=true&characterEncoding=utf-8&useSSL=false"也能连接成功,建议加上,能避免很多问题。

3.添加网络权限到Mainfest里面:

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

运行成功: