PandaLib/src/fr/pandacube/java/util/db/sql_tools/DBConnection.java

52 lines
1.0 KiB
Java
Raw Normal View History

package fr.pandacube.java.util.db.sql_tools;
2016-07-08 11:33:22 +02:00
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class DBConnection {
Connection conn;
String url;
String login;
String pass;
public DBConnection(String host, int port, String dbname, String l, String p)
throws ClassNotFoundException, SQLException {
2016-07-08 11:33:22 +02:00
Class.forName("com.mysql.jdbc.Driver");
url = "jdbc:mysql://" + host + ":" + port + "/" + dbname;
2016-07-08 11:33:22 +02:00
login = l;
pass = p;
connect();
2016-07-08 11:33:22 +02:00
}
public void reconnectIfNecessary() throws SQLException {
try {
2016-07-08 11:33:22 +02:00
Statement stmt = conn.createStatement();
stmt.close();
} catch (SQLException e) {
try {
close();
} catch (Exception ex) {}
connect();
2016-07-08 11:33:22 +02:00
}
}
public Connection getNativeConnection() throws SQLException {
if (!conn.isValid(1)) reconnectIfNecessary();
2016-07-08 11:33:22 +02:00
return conn;
}
private void connect() throws SQLException {
conn = DriverManager.getConnection(url, login, pass);
}
2016-07-08 11:33:22 +02:00
public void close() {
try {
conn.close();
} catch (Exception e) {}
2016-07-08 11:33:22 +02:00
}
2016-07-08 11:33:22 +02:00
}