问题
com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“Socket is closed”。 ClientConnectionId:af2c402a-e8f2-4a63-ad54-f03079b20d19
解决
在网上找了很多方法,像什么加encrypt=false/true,加trustServerCertificate=true都没有用,最后看到有人用别的驱动就试了一下,成功了
使用 JTDS 驱动而不是JDBC
最新版的android studio 2023挺好使,不用再加版本号了
implementation libs.net.jtds
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class SqlConnectionExample {
public static void main(String[] args) {
try {
Class.forName("net.sourceforge.jtds.jdbc.Driver");
String url = "jdbc:jtds:sqlserver://数据库ip:1433/数据库名称";
String username = "登录名";
String password = "密码";
Connection connection = DriverManager.getConnection(url, username, password);
Statement statement = connection.createStatement();
// 执行查询并获取结果集
ResultSet resultSet = statement.executeQuery("SELECT * FROM table");
// 遍历结果集并处理数据
while (resultSet.next()) {
// 从结果集中获取数据
String name = resultSet.getString("name");
// 处理获取到的数据
Log.d(TAG, "run: "+name);
}
//数据库操作
// 关闭结果集、Statement 和连接
resultSet.close();
statement.close();
connection.close();
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
}
private static final String TAG = "HomeFragment";
}