/** * Ok, this is cheating, but heck is easy and fast. * * @param entityId * @param currencyId * @return * @throws SQLException * @throws NamingException */ private static boolean entityHasCurrency(Integer entityId, Integer currencyId) throws SQLException, NamingException { Connection conn = null; PreparedStatement stmt = null; ResultSet result = null; try { JNDILookup jndi = JNDILookup.getFactory(); conn = jndi.lookUpDataSource().getConnection(); stmt = conn.prepareStatement( "select 1 " + " from currency_entity_map " + " where currency_id = ? " + " and entity_id = ?"); stmt.setInt(1, currencyId); stmt.setInt(2, entityId); result = stmt.executeQuery(); return result.next(); } finally { Util.closeQuietly(result); Util.closeQuietly(stmt); Util.closeQuietly(conn); } }
/* * The name of the file has to start with '/'. * Example: "/jbilling.properties" * Otherwise it won't find it in the classpath */ public RefreshBettyTable(String propertiesFile) throws FileNotFoundException, IOException, ClassNotFoundException, SQLException, NamingException { if (propertiesFile != null) { Properties globalProperties = new Properties(); globalProperties.load(RefreshBettyTable.class.getResourceAsStream(propertiesFile)); Class.forName(globalProperties.getProperty("driver_class")); this.conn = DriverManager.getConnection( globalProperties.getProperty("connection_url"), globalProperties.getProperty("connection_username"), globalProperties.getProperty("connection_password")); } else { JNDILookup jndi = JNDILookup.getFactory(); // the connection will be closed by the RowSet as soon as it // finished executing the command this.conn = jndi.lookUpDataSource().getConnection(); } Logger.getLogger(this.toString()).debug("Refreshing tables with " + "connection = " + conn); }