Ich habe meinen GlassFish Server über die Administrationskonsole konfiguriert und die JDBC Verbindungspools und JDBC Ressourcen hinzugefügt. Das Pingen über die Administrationskonsole von GlassFish funktioniert mit Erfolg. Ich erstelle das Database-Objekt und rufe die Einfügemethode aus der Database-Klasse auf.GlassFish Server jdbc kann keine Datensätze in die Datenbank einfügen
Database database = new Database();
BigInteger acSerial = att.getSerialNumber();
BigInteger pkcSerial = att.getHolder().getSerialNumber();
String AC = Base64.getUrlEncoder().encodeToString(att.getEncoded());
database.inserting(acSerial,pkcSerial,AC);
Hier ist meine Einführungsmethode aus der Datenbank Klasse:
public class Database {
// JDBC driver name and database URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost:3306/AC?autoReconnect=true&useSSL=false";
// Database credentials
static final String USER = "XXXXXX";
static final String PASS = "XXXXXXXX";
public void inserting(BigInteger acparam, BigInteger pkcparam, String encoded) {
Connection conn = null;
Statement stmt = null;
try{
//STEP 2: Register JDBC driver
Class.forName("com.mysql.jdbc.Driver");
//STEP 3: Open a connection
conn = DriverManager.getConnection(DB_URL, USER, PASS);
//STEP 4: Execute a query
stmt = conn.createStatement();
String sql = "INSERT INTO ACCredentials " + "VALUES (" +acparam +"," +pkcparam +"," +"'"+encoded+"'" +")" + "";
stmt.executeUpdate(sql);
}catch(SQLException se){
//Handle errors for JDBC
se.printStackTrace();
}catch(Exception e){
//Handle errors for Class.forName
e.printStackTrace();
}finally{
//finally block used to close resources
try{
if(stmt!=null)
conn.close();
}catch(SQLException se){
}
try{
if(conn!=null)
conn.close();
}catch(SQLException se){
se.printStackTrace();
}
}
}
}
Mein Problem ist, nichts in die MySQL-Datenbank eingefügt. Ich habe dieses Einfügebeispiel ohne GlassFish Server ausprobiert und es hat funktioniert. Weiß jemand das Problem?
Blick in Ihr Problem, aber ein off-topic-Kommentar-harte Codierung Anmeldeinformationen ist eine sehr schlechte Idee. Versuchen Sie, eine JNDI-Ressource zu erstellen und sie vom Server zu zeichnen (einfacher als jdbc-Ressourcen, um ehrlich zu sein) –
Ich löschte den letzten Kommentar, was ich hätte kommentieren müssen - ACCredntials hat 3 Spalten richtig? –
das stimmt, ACCredentials hat 3 Spalten. – Hakikat41