Hi,
Is there a way to get a unique database or catalog name?
eg:
jdbc:h2:mem:abc/test -> catalog name=test
jdbc:h2:mem:xyz/test -> catalog name=test
But abc/test and xyz/test are different databases and they have the
same catalog name.
So why do I need a unique database name?
I'm implementing a Trigger class but H2 only use one classloader for
the entire database engine, multiple database will gets the same
Trigger class, which means static variables in this class is
accessible in different databases.
I'm was planning to store the per database static data in a map keyed
by a unique database name.
public class MyTrigger implements Trigger{
private static HashMap<String,String> map = new
HashMap<String,String>();
public void init(Connection conn, String schemaName, String
triggerName,
String tableName, boolean before, int type) throws
SQLException {
DatabaseMetaData dbMetaData = conn.getMetaData();
ResultSet rs = dbMetaData.getCatalogs();
while(rs.next()){
String databaseName = rs.getObject(1);
map.put(databaseName, ....); //this will override my
value when
catalog name is same
}
...
}
public void close() throws SQLException {
...
}
public void fire(Connection conn, Object[] oldRow, Object[] newRow)
throws SQLException {
...
}
public void remove() throws SQLException {
...
}
}
--
You received this message because you are subscribed to the Google Groups "H2
Database" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/h2-database?hl=en.