Android 直连MySQL数据库

1.准备数据库驱动包

准备mysql的数据库驱动,我在mysql官网下载的最新版的驱动在Android上运行会报错,找不到某些类,无奈只能一些旧版本的驱动包,可以正常编译。

可以到这里下载

然后把下载的jar包导入到项目中

2.加载数据库驱动

Class.forName("com.mysql.jdbc.Driver");

3.连接

getConnection有三个参数

  • 第一个参数为连接地址,格式为jdbc:mysql://IP地址或域名:端口号/数据库名,端口号默认都是3306
  • 第二个参数是数据库用户名
  • 第三个参数是数据库密码
DriverManager.getConnection("jdbc:mysql://192.168.1.101:3306/hellospring", "Him", "123456");

4.Android直连MySQL数据库示例代码

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        findViewById(R.id.connect).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        connect();
                    }
                }).start();
            }
        });
    }

    private void connect() {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            Connection con =  DriverManager.getConnection("jdbc:mysql://192.168.1.101:3306/mydatabase", "user", "password");
            Log.d("TAG", "连接成功");
            // 连接成功后通过Connection执行数据库操作
        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
            Log.d("TAG", "连接失败:" + e.getLocalizedMessage());
        }
    }
}

5.注意事项

  1. 数据库连接也属于网络连接,所以记得添加<uses-permission android:name="android.permission.INTERNET"/>权限
  2. 数据库连接也属于网络连接,比较耗时,所以需放在子线程中操作,否则会连接失败,报com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.异常

 

posted @ 2019-04-11 21:21  野猿新一  阅读(28)  评论(0编辑  收藏  举报