Saya menghadapi masalah dengan kod ralat "java.sql.SQLNonTransientConnectionException: Tidak dapat membuat sambungan ke pelayan pangkalan data". Saya cuba mewujudkan sambungan ke pangkalan data menggunakan JDBC dan kelayakan dieja dengan betul. Bolehkah anda membantu saya menyemak kemungkinan masalah dalam projek ini?
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); } } }
Saya menyemak sambungan, menulis semula kod, menambah pengawal pada manifes.
Sebaik-baiknya masalah ini berlaku apabila rentetan sambungan salah. Anda boleh menyemak sama ada rentetan sambungan yang terbentuk adalah dalam format yang betul.
Rentetan sambungan yang dijangkakan untuk sambungan mysql jdbc adalah seperti berikut,
Sila rujuk https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference-jdbc-url-format.html untuk mendapatkan butiran lanjut tentang rentetan sambungan.
Selain itu, pastikan pangkalan data berfungsi dan berjalan pada port yang disediakan dalam kod, iaitu localhost:3306.