我遇到錯誤程式碼「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); } } }
我檢查了連接,重寫了程式碼,將控制器新增到了清單中。
理想情況下,當連接字串錯誤時會出現此問題。您可以檢查一下形成的連接字串的格式是否正確。
mysql jdbc 連接的預期連接字串如下,
請參考https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference-jdbc-url-format.html 有關連接字串的更多詳細資料。
此外,請確保資料庫已啟動並在程式碼中提供的連接埠上運行,即 localhost:3306。