package railo.commons.db; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import railo.runtime.db.driver.ConnectionProxy; import railo.runtime.db.driver.state.StateFactory; /** * Utility for db */ public final class DBUtil { // TODO impl. this class, not used at the moment /** * returns label matching className * @param className * @return label */ public static String getLabelForDriverClass(String className) { if("com.microsoft.jdbc.sqlserver.SQLServerDriver".equals(className)) return "MSSQL DataBase"; // TODO connect WS from railo. ch to get more return className; } public static void setAutoCommitEL(Connection conn, boolean b) { /*try { if(conn!=null){ if(conn.getAutoCommit()==b) return; } } catch (Throwable e) {}*/ try { if(conn!=null)conn.setAutoCommit(b); } catch (Throwable e) {} } public static void setReadOnlyEL(Connection conn, boolean b) { try { if(conn!=null)conn.setReadOnly(b); } catch (Throwable e) {} } public static void commitEL(Connection conn) { try { if(conn!=null)conn.commit(); } catch (Throwable e) {} } public static void setTransactionIsolationEL(Connection conn,int level) { try { if(conn!=null)conn.setTransactionIsolation(level); } catch (Throwable e) {} } public static void closeEL(Statement stat) { if(stat!=null) { try { stat.close(); } catch (Throwable t) {} } } public static void closeEL(ResultSet rs) { if(rs!=null) { try { rs.close(); } catch (Throwable t) {} } } public static Connection getConnection(String connStr, String user, String pass) throws SQLException { try { //return DriverManager.getConnection(dsn, user, pass); return new ConnectionProxy(new StateFactory(), DriverManager.getConnection(connStr, user, pass)); } catch (SQLException e) { if(connStr.indexOf('?')!=-1) { connStr=connStr+"&user="+user+"&password="+pass; //return DriverManager.getConnection(connStr); return new ConnectionProxy(new StateFactory(), DriverManager.getConnection(connStr)); } throw e; } } }