/** * Gets the Connection URL of this EntityManager from the MetaData. * @return Connection URL */ public String getMetaDataUrl() { return this.extractDatabaseMetaData(new DatabaseMetaDataCallback<String>() { @Override public String processMetaData(DatabaseMetaData dbmd) throws SQLException { return dbmd.getURL(); } }); }
/** * Gets the UserName from the connection of this EntityManager from the MetaData. * @return Connection UserName */ public String getMetaDataUserName() { return this.extractDatabaseMetaData(new DatabaseMetaDataCallback<String>() { @Override public String processMetaData(DatabaseMetaData dbmd) throws SQLException { return dbmd.getUserName(); } }); }
List<String> tableNames = this.extractDatabaseMetaData(new DatabaseMetaDataCallback<List<String>>() { @Override public List<String> processMetaData(DatabaseMetaData dbmd) throws SQLException {
/** * Gets the type of the DB implementation of this EntityManager. If the type is not known (or supported) * by JuEmUtil, an exception is thrown. * @return DbType */ public DbType getDbType() { if (this.dbType == null) { String productName = this.extractDatabaseMetaData(new DatabaseMetaDataCallback<String>() { @Override public String processMetaData(DatabaseMetaData dbmd) throws SQLException { return dbmd.getDatabaseProductName(); } }); this.dbType = DbType.evaluateDbType(productName); } return this.dbType; }
@Test public void processMetaData() { String url = this.emUtil.extractDatabaseMetaData(new DatabaseMetaDataCallback<String>() { @Override public String processMetaData(DatabaseMetaData dbmd) throws SQLException { return dbmd.getURL(); } }); logger.debug("Got DB URL: " + url); Assert.assertTrue(url.startsWith("jdbc:")); }
/** * Gets a list of the primery key columns for the specified table * <p> * Column names are kept the way the driver returns them (may be upper, lower or mixed case) * @param tableName Table name * @return List of all columns that make up the primary key. If no primary key is applied, an empty list is returned. */ public List<String> getPrimaryKeyColumns(final String tableName) { final String actualTableName = this.getDbType().getDbSpecificHandler(this.asConnUtil()).convertTableNameCasing(tableName); List<String> columnNames = this.extractDatabaseMetaData(new DatabaseMetaDataCallback<List<String>>() { @Override public List<String> processMetaData(DatabaseMetaData dbmd) throws SQLException { ResultSet rs = dbmd.getPrimaryKeys(null, null, actualTableName); List<String> columnNames = new ArrayList<>(); while (rs.next()) { columnNames.add(rs.getString("COLUMN_NAME")); } rs.close(); return columnNames; } }); return columnNames; }