import java.sql.*;
public class Main {
public static void main
(String[] args
) {
String url
= "jdbc:mysql://localhost:3306/student_db";
try {
// Load JDBC Driver
Class.forName("com.mysql.cj.jdbc.Driver");
System.
out.
println("Loading JDBC Driver..."); System.
out.
println("Driver loaded successfully!");
// Establish Connection
System.
out.
println("\nConnecting to the database..."); url, username, password
);
System.
out.
println("Connecting to:"); System.
out.
println("Connection established successfully!");
// Execute Query
System.
out.
println("\nPerforming database operations...");
String query
= "SELECT * FROM Students";
System.
out.
println("Executing Query: " + query
+ ";");
System.
out.
println("+----+----------------+-------+"); System.
out.
printf("| %-2s | %-14s | %-5s |%n",
"ID", "Name", "Marks");
System.
out.
println("+----+----------------+-------+");
while (rs.next()) {
System.
out.
printf("| %-2d | %-14s | %-5.1f |%n",
rs.getInt("ID"),
rs.getString("Name"),
rs.getDouble("Marks"));
}
System.
out.
println("+----+----------------+-------+");
"Database query executed successfully."
);
// Close Resources
System.
out.
println("\nClosing database resources...");
rs.close();
stmt.close();
con.close();
System.
out.
println("Connection closed successfully!"); }
System.
out.
println("Driver not found: " + e.
getMessage()); }
System.
out.
println("Connection Error: " + e.
getMessage()); }
}
}
aW1wb3J0IGphdmEuc3FsLio7CgpwdWJsaWMgY2xhc3MgTWFpbiB7CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CgogICAgICAgIFN0cmluZyB1cmwgPSAiamRiYzpteXNxbDovL2xvY2FsaG9zdDozMzA2L3N0dWRlbnRfZGIiOwogICAgICAgIFN0cmluZyB1c2VybmFtZSA9ICJyb290IjsKICAgICAgICBTdHJpbmcgcGFzc3dvcmQgPSAicm9vdCI7CgogICAgICAgIHRyeSB7CiAgICAgICAgICAgIC8vIExvYWQgSkRCQyBEcml2ZXIKICAgICAgICAgICAgQ2xhc3MuZm9yTmFtZSgiY29tLm15c3FsLmNqLmpkYmMuRHJpdmVyIik7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiTG9hZGluZyBKREJDIERyaXZlci4uLiIpOwogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkRyaXZlciBsb2FkZWQgc3VjY2Vzc2Z1bGx5ISIpOwoKICAgICAgICAgICAgLy8gRXN0YWJsaXNoIENvbm5lY3Rpb24KICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJcbkNvbm5lY3RpbmcgdG8gdGhlIGRhdGFiYXNlLi4uIik7CiAgICAgICAgICAgIENvbm5lY3Rpb24gY29uID0gRHJpdmVyTWFuYWdlci5nZXRDb25uZWN0aW9uKAogICAgICAgICAgICAgICAgdXJsLCB1c2VybmFtZSwgcGFzc3dvcmQKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ29ubmVjdGluZyB0bzoiKTsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHVybCk7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ29ubmVjdGlvbiBlc3RhYmxpc2hlZCBzdWNjZXNzZnVsbHkhIik7CgogICAgICAgICAgICAvLyBFeGVjdXRlIFF1ZXJ5CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiXG5QZXJmb3JtaW5nIGRhdGFiYXNlIG9wZXJhdGlvbnMuLi4iKTsKCiAgICAgICAgICAgIFN0cmluZyBxdWVyeSA9ICJTRUxFQ1QgKiBGUk9NIFN0dWRlbnRzIjsKICAgICAgICAgICAgU3RhdGVtZW50IHN0bXQgPSBjb24uY3JlYXRlU3RhdGVtZW50KCk7CgogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkV4ZWN1dGluZyBRdWVyeTogIiArIHF1ZXJ5ICsgIjsiKTsKCiAgICAgICAgICAgIFJlc3VsdFNldCBycyA9IHN0bXQuZXhlY3V0ZVF1ZXJ5KHF1ZXJ5KTsKCiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiKy0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKyIpOwogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50ZigifCAlLTJzIHwgJS0xNHMgfCAlLTVzIHwlbiIsCiAgICAgICAgICAgICAgICAiSUQiLCAiTmFtZSIsICJNYXJrcyIpOwogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIistLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLSsiKTsKCiAgICAgICAgICAgIHdoaWxlIChycy5uZXh0KCkpIHsKICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRmKCJ8ICUtMmQgfCAlLTE0cyB8ICUtNS4xZiB8JW4iLAogICAgICAgICAgICAgICAgICAgIHJzLmdldEludCgiSUQiKSwKICAgICAgICAgICAgICAgICAgICBycy5nZXRTdHJpbmcoIk5hbWUiKSwKICAgICAgICAgICAgICAgICAgICBycy5nZXREb3VibGUoIk1hcmtzIikpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIistLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLSsiKTsKCiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigKICAgICAgICAgICAgICAgICJEYXRhYmFzZSBxdWVyeSBleGVjdXRlZCBzdWNjZXNzZnVsbHkuIgogICAgICAgICAgICApOwoKICAgICAgICAgICAgLy8gQ2xvc2UgUmVzb3VyY2VzCiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiXG5DbG9zaW5nIGRhdGFiYXNlIHJlc291cmNlcy4uLiIpOwoKICAgICAgICAgICAgcnMuY2xvc2UoKTsKICAgICAgICAgICAgc3RtdC5jbG9zZSgpOwogICAgICAgICAgICBjb24uY2xvc2UoKTsKCiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ29ubmVjdGlvbiBjbG9zZWQgc3VjY2Vzc2Z1bGx5ISIpOwogICAgICAgIH0KICAgICAgICBjYXRjaCAoQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiBlKSB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRHJpdmVyIG5vdCBmb3VuZDogIiArIGUuZ2V0TWVzc2FnZSgpKTsKICAgICAgICB9CiAgICAgICAgY2F0Y2ggKFNRTEV4Y2VwdGlvbiBlKSB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ29ubmVjdGlvbiBFcnJvcjogIiArIGUuZ2V0TWVzc2FnZSgpKTsKICAgICAgICB9CiAgICB9Cn0=