三月二十一日
很开心,今天终于连接到了。界面显示的是返回的Connection的值和我查询的一个数据库内容。

主要的原因是MySQL8.0版本不兼容,反正我的是更换5.0版本就好了。(提醒大家不要不相信,我也在这里卡了好久,明明代码没有问题,但就是连接不上)
还有连接数据库是一个耗时的过程,要放在次线程进行,这个看网上好像说是新更新的Android 是这样。网上有好多代码可以看,主要是配置环境不对,真的不是不努力,被卡在第一步也是打击很大的。
简单的看一下我的代码,只是简单的实现一个查询。
MainActivity
package com.example.myapplicatio1;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import java.nio.file.FileSystemLoopException;
import java.sql.Connection;
public class MainActivity extends AppCompatActivity {
public Connection coon = null;
TextView address = null;
TextView result = null;
String re = null;
User user =null;
utilDao dao = new utilDao();
@SuppressLint("MissingInflatedId")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
result = findViewById(R.id.result);
user = new User("1","1");
Thread thread =new Thread(new Runnable() {
@Override
public void run() {
address = findViewById(R.id.add);
coon = getConnection.getcoon();
address.setText(String.valueOf(coon));
re = dao.select(user);
// re = "sdf"+
result.setText(re);
}
});thread.start();
}
}
连接数据库的封装类
package com.example.myapplicatio1;
import java.sql.*;
public class getConnection {
private static Connection connection = null;
private static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
private static final String DATABASE_URL = "jdbc:mysql://10.99.113.81/user";
private static final String DATABASE_USER = "Android";
private static final String DATABASE_PASSWORD = "246437";
public static Connection getcoon() {
try {
// Load the JDBC driver
Class.forName(JDBC_DRIVER);
// Establish a connection
connection = DriverManager.getConnection(DATABASE_URL, DATABASE_USER, DATABASE_PASSWORD);
// You now have a connection to the database
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}
}
User类,就是数据库主要的内容,我的是有三个。
package com.example.myapplicatio1;
public class User {
private String name;
private String password;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public User(String name, String password) {
super();
this.name = name;
this.password = password;
}
@Override
public String toString() {
return "User [name=" + name + ", password=" + password + "]";
}
}
查询数据库内容
package com.example.myapplicatio1;
import java.sql.SQLException;
import java.sql.*;
public class utilDao {
String identity;
//查询
public String select(User user)
{
Connection coon = getConnection.getcoon();
String sql = "select identity from information where name=? and password = ? ";
try {
PreparedStatement ps = coon.prepareStatement(sql);
ps.setString(1, user.getName());
ps.setString(2, user.getPassword());
ResultSet re = ps.executeQuery();
while(re.next())
{
identity = re.getString("identity");
}
} catch (SQLException e) {
e.printStackTrace();
return null;
}
return identity;
}
}
这个是我的navicat一个数据库图形化工具。

也有好久了,明天终于可以开始后面的进度了。
浙公网安备 33010602011771号