I realize many have already posted about this issue, but I've been trying whatn I find and had issues... Just trying to set up a basic connection to the mySQL server using JDBC in eclipse for a class project. Thus far I'm the only one having issues connecting even though I'm following the same steps and even using the same file. The code itself is below (minus the UN/PW followed by the errors I'm getting through the printStackTrace:
try{
Class.forName("com.mysql.cj.jdbc.Driver");
Connection connectionValue = DriverManager.getConnection(sqldatabase, username, passwordValue);
System.out.println("sucess");
Statement sqlStatement = connectionValue.createStatement();
boolean value = sqlStatement.execute("Select * from Inventory_Items");
// prints out a boolean value, so if you check if a user exists you can do a quick comparison ** login function
System.out.println(value);
// prepared statements knowledge is from https://www.javatpoint.com/PreparedStatement-interface
// ************************* UPDATE**************************
String updateButtonSQL = "UPDATE Inventory_Items SET itemvalue=? WHERE item=?";
PreparedStatement updateValue = connectionValue.prepareStatement(updateButtonSQL);
updateValue.setString(2, "apples"); // this is related to which question mark, this is for the second question mark
updateValue.setInt(1, 4); // this is related to the FIRST questionmark
int test = updateValue.executeUpdate();// this executes the statement
System.out.println(test); // 1 means success
// ******************************** ADD ***********************************
String addButtonSQL = "INSERT INTO Inventory_Items (item, itemValue) VALUES (?,?)";
PreparedStatement addItemValue = connectionValue.prepareStatement(addButtonSQL);
addItemValue.setString(1, "Pens");
addItemValue.setInt(2, 7);
int addTest = addItemValue.executeUpdate();
// ************************** DELETE *********************************
String deleteButtonSQL = "DELETE FROM Inventory_Items WHERE item=?";
PreparedStatement deleteItemValue = connectionValue.prepareStatement(deleteButtonSQL);
deleteItemValue.setString(1, "Pens");
int deleteTest = deleteItemValue.executeUpdate();
// ************************ SELECT ***************************
// code was basically copied from https://www.javatpoint.com/PreparedStatement-interface
String selectButtonSQL = "Select * from Inventory_Items";
PreparedStatement selectItemValue = connectionValue.prepareStatement(selectButtonSQL);
ResultSet selectResponse = selectItemValue.executeQuery();
while(selectResponse.next()){
System.out.println(selectResponse.getString(1)+ " "+ selectResponse.getInt(2));
}
}
catch(SQLException io){
System.out.println("it failed to connect");
}
catch(ClassNotFoundException ii){
System.out.println("class failed");
}
And the errors:
com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
at mysql.connector.java@8.0.29/com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java:174)
at mysql.connector.java@8.0.29/com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:64)
at mysql.connector.java@8.0.29/com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:828)
at mysql.connector.java@8.0.29/com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:448)
at mysql.connector.java@8.0.29/com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:241)
at mysql.connector.java@8.0.29/com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:681)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:229)
at test.JavaApplication1.main(JavaApplication1.java:25)
Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
at mysql.connector.java@8.0.29/com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61)
at mysql.connector.java@8.0.29/com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105)
at mysql.connector.java@8.0.29/com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151)
at mysql.connector.java@8.0.29/com.mysql.cj.exceptions.ExceptionFactory.createCommunicationsException(ExceptionFactory.java:167)
at mysql.connector.java@8.0.29/com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:89)
at mysql.connector.java@8.0.29/com.mysql.cj.NativeSession.connect(NativeSession.java:120)
at mysql.connector.java@8.0.29/com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:948)
at mysql.connector.java@8.0.29/com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:818)
... 6 more
Caused by: java.net.ConnectException: Connection timed out: connect
at java.base/sun.nio.ch.Net.connect0(Native Method)
at java.base/sun.nio.ch.Net.connect(Net.java:579)
at java.base/sun.nio.ch.Net.connect(Net.java:568)
at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:588)
at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
at java.base/java.net.Socket.connect(Socket.java:633)
at mysql.connector.java@8.0.29/com.mysql.cj.protocol.StandardSocketFactory.connect(StandardSocketFactory.java:153)
at mysql.connector.java@8.0.29/com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:63)
... 9 more
I'm sure it something people here could fix in 5 minutes, but I'm a student and i'm lost....