我遇到错误代码“java.sql.SQLNonTransientConnectionException:无法创建与数据库服务器的连接”的问题。我正在尝试使用 JDBC 与数据库建立连接,凭据拼写正确。您能帮我检查一下这个项目中可能出现的问题吗?
package com.example.daily.db; import android.os.Bundle; import androidx.appcompat.app.AppCompatActivity; import com.example.daily.R; import com.mysql.cj.protocol.Resultset; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; public class controler extends AppCompatActivity { private controler controlador; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_tercera); controlador = new controler(); } public static void micontroler (){ String usuario = "root"; String password = "Prueb@1"; String url = "jdbc:mysql://localhost:3306/daily_db"; Connection conexion; Statement statement; Resultset rs; try { Class.forName("com.mysql.cj.jdbc.Driver"); } catch (ClassNotFoundException e) { throw new RuntimeException(e); } try { conexion = DriverManager.getConnection(url,usuario,password); statement = conexion.createStatement(); statement.executeUpdate("INSERT INTO USUARIOS(EMAIL,NOMBRES,APELLIDOS,APODO,FECHA_NACIMIENTO) VALUES ('Teste','TESTn','TESTa','TESTp','14/06/22')"); } catch (SQLException e) { throw new RuntimeException(e); } } }
我检查了连接,重写了代码,将控制器添加到了清单中。
P粉3203612012024-01-11 14:39:51
理想情况下,当连接字符串错误时会出现此问题。您可以检查一下形成的连接字符串的格式是否正确。
mysql jdbc 连接的预期连接字符串如下,
jdbc:mysql://localhost:3306/daily_db?user=root&password=Prueb@1&serverTimezone=UTC
请参考https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference-jdbc-url-format.html 有关连接字符串的更多详细信息。
此外,请确保数据库已启动并在代码中提供的端口上运行,即 localhost:3306。