1、我想要使用android studio 连接mysql ,在navicat 已经可以通过ip地址访问数据库了,已经授权远程服务。
2、但是连接过程出现错误。
```java
package com.example.mysql;
import android.util.Log;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class MySqlHelp {
public static int getUserSize(){
final String cls = "com.mysql.jdbc.Driver";
final String url = "jdbc:mysql://172.17.xxx.xxx:3306/bookdb";(ip地址不便透露)
final String user = "root";
final String pwd = "root";
int count = 0;
try{
Class.forName(cls);
Connection conn = DriverManager.getConnection(url,user,pwd);
String sql = "select count(1) as s1 from userinfo";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()){
count = rs.getInt("s1");
System.out.println(count);
Log.i("==","count");
}
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
return 0;
}
}
主函数
```package com.example.mysql;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private Button btn_query;
private TextView tv_user;
private Handler handler = new Handler(){
@Override
public void handleMessage(@NonNull Message msg){
// super.handleMessage(msg);
if (msg.what == 0) {
int count = (Integer)msg.obj;
tv_user.setText("数据为"+count);
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
// 初始化操作
private void initView() {
btn_query = findViewById(R.id.btn_query);
tv_user = findViewById(R.id.tv_user);
btn_query.setOnClickListener(this);
}
// 点击事件
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btn_query:
doQueryCount();
break;
}
}
// 查询方法
private void doQueryCount() {
new Thread(new Runnable() {
@Override
public void run() {
int count = MySqlHelp.getUserSize();
Message msg = Message.obtain();
msg.what = 0; //查询结果
msg.obj = count;
//向主线程发送数据
handler.sendMessage(msg);
Log.e("=====","msg="+msg);
Log.e("=====","count="+count);
}
}).start();
}
}