2016-07-08 11:33:22 +02:00
|
|
|
package fr.pandacube.java.util.db2.sql_tools;
|
|
|
|
|
|
|
|
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 {
|
|
|
|
Class.forName("com.mysql.jdbc.Driver");
|
|
|
|
url = "jdbc:mysql://"+host+":"+port+"/"+dbname;
|
|
|
|
login = l;
|
|
|
|
pass = p;
|
2016-07-12 19:26:49 +02:00
|
|
|
connect();
|
2016-07-08 11:33:22 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void reconnectIfNecessary() throws SQLException
|
|
|
|
{
|
|
|
|
try
|
|
|
|
{
|
|
|
|
Statement stmt = conn.createStatement();
|
|
|
|
stmt.close();
|
|
|
|
}
|
|
|
|
catch(SQLException e)
|
|
|
|
{
|
2016-07-12 19:26:49 +02:00
|
|
|
try { close(); } catch(Exception ex) { }
|
|
|
|
connect();
|
2016-07-08 11:33:22 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public Connection getNativeConnection() throws SQLException
|
|
|
|
{
|
|
|
|
if (!conn.isValid(1))
|
|
|
|
reconnectIfNecessary();
|
|
|
|
return conn;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2016-07-12 19:26:49 +02:00
|
|
|
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) { }
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|