Witam.
Chciałem przedstawić sposób w jaki zamierzam się łączyć z bazą do oceny. Wszystko niby działa, ale wiem że coś mogę zrobić dużo lepiej, a więc prosiłbym o jakies sugestie. Wzorowałem się na szablonie do obsługi db napisany w pewnym temacie przez użytkownika Koziołka.
package hotel;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Properties;
/*
* Klasa odpowiedzialna za obsługę bazy
**/
public class DBConnector {
private static Connection CON;
public DBConnector() {
}
public static void init(Properties p) {
String driver=null;
String url = null;
String user = null;
String pass = null;
try {
driver = p.getProperty("driver");
url = p.getProperty("url");
user = p.getProperty("user");
pass = p.getProperty("pass");
} catch(Exception e) {
System.out.println("Properties load failed. " + e.getMessage());
}
try {
Class.forName(driver);
System.out.println("Driver succesfully loaded!");
CON = DriverManager.getConnection(url, user, pass);
System.out.println("You are connected to the database!");
//CON.setAutoCommit(false);
} catch(Exception e) {
System.out.println(e.getMessage());
CON = null;
}
}
public static Connection getCON() {
if (CON == null)
throw new NullPointerException(
"Connection in null! Call init() first");
return CON;
}
@Override
protected void finalize() throws Throwable {
CON.close();
}
}
package hotel;
import java.util.Properties;
//import java.io.FileInputStream;
import java.io.*;
/**
* Główna klasa.
*
*/
public class Hotel {
public static void main(String[] args) {
Properties props = new Properties();
try {
props.load(new FileInputStream("XXXXXX"));
System.out.println("Properties succesfully loaded");
} catch(IOException e) {
e.printStackTrace();
}
DBConnector db = new DBConnector();
db.init(props);
//db.getCON();
}
}
Pozdrawiam