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