Android 直连MySQL数据库

1.准备数据库驱动包

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

可以到这里下载

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

2.加载数据库驱动

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

Click and drag to move

3.连接

getConnection有三个参数

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

Click and drag to move

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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());
}
}
}

Click and drag to move

5.注意事项

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