|
HSQLDB example source code file (ConnectionDialogCommon.java)
The HSQLDB ConnectionDialogCommon.java source code/* Copyright (c) 2001-2008, The HSQL Development Group * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, this * list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * Neither the name of the HSQL Development Group nor the names of its * contributors may be used to endorse or promote products derived from this * software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL HSQL DEVELOPMENT GROUP, HSQLDB.ORG, * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ package org.hsqldb.util; import java.io.EOFException; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.lang.reflect.Constructor; import java.util.Enumeration; import java.util.Hashtable; import org.hsqldb.lib.java.JavaSystem; // sqlbob@users 20020407 - patch 1.7.0 - reengineering // fredt@users - 20040508 - modified patch by lonbinder@users for saving settings // weconsultants@users - 20041114 - patch 1.8.0 - Added MySQL Connector/J jbcDriver and granulated imports /** * Common code in the Swing and AWT versions of ConnectionDialog * * New class based on Hypersonic original * * @author Thomas Mueller (Hypersonic SQL Group) * @version 1.7.2 * @since 1.7.0 */ class ConnectionDialogCommon { private static String[][] connTypes; private static final String[][] sJDBCTypes = { { "HSQL Database Engine In-Memory", "org.hsqldb.jdbcDriver", "jdbc:hsqldb:mem:." }, { "HSQL Database Engine Standalone", "org.hsqldb.jdbcDriver", "jdbc:hsqldb:file:\u00ABdatabase/path?\u00BB" }, { "HSQL Database Engine Server", "org.hsqldb.jdbcDriver", "jdbc:hsqldb:hsql://localhost/" }, { "HSQL Database Engine WebServer", "org.hsqldb.jdbcDriver", "jdbc:hsqldb:http://\u00ABhostname/?\u00BB" }, { "JDBC-ODBC Bridge from Sun", "sun.jdbc.odbc.JdbcOdbcDriver", "jdbc:odbc:\u00ABdatabase?\u00BB" }, { "Cloudscape RMI", "RmiJdbc.RJDriver", "jdbc:rmi://\u00ABhost?\u00BB:1099/jdbc:cloudscape:" + "\u00ABdatabase?\u00BB;create=true" }, { "IBM DB2", "COM.ibm.db2.jdbc.app.DB2Driver", "jdbc:db2:\u00ABdatabase?\u00BB" }, { "IBM DB2 (thin)", "COM.ibm.db2.jdbc.net.DB2Driver", "jdbc:db2://\u00ABhost?\u00BB:6789/\u00ABdatabase?\u00BB" }, { "Informix", "com.informix.jdbc.IfxDriver", "jdbc:informix-sqli://\u00ABhost?\u00BB:1533/\u00ABdatabase?\u00BB:" + "INFORMIXSERVER=\u00ABserver?\u00BB" }, { "InstantDb", "jdbc.idbDriver", "jdbc:idb:\u00ABdatabase?\u00BB.prp" }, { "MySQL Connector/J", "com.mysql.jdbc.Driver", "jdbc:mysql://\u00ABhost?\u00BB/\u00ABdatabase?\u00BB" }, { "MM.MySQL", "org.gjt.mm.mysql.Driver", "jdbc:mysql://\u00ABhost?\u00BB/\u00ABdatabase?\u00BB" }, { "Oracle", "oracle.jdbc.driver.OracleDriver", "jdbc:oracle:oci8:@\u00ABdatabase?\u00BB" }, { "Oracle (thin)", "oracle.jdbc.driver.OracleDriver", "jdbc:oracle:thin:@\u00ABhost?\u00BB:1521:\u00ABdatabase?\u00BB" }, { "PointBase", "com.pointbase.jdbc.jdbcUniversalDriver", "jdbc:pointbase://\u00ABhost?\u00BB/\u00ABdatabase?\u00BB" }, { "PostgreSQL", "org.postgresql.Driver", "jdbc:postgresql://\u00ABhost?\u00BB/\u00ABdatabase?\u00BB" }, { "PostgreSQL v6.5", "postgresql.Driver", "jdbc:postgresql://\u00ABhost?\u00BB/\u00ABdatabase?\u00BB" } }; static String[][] getTypes() { return sJDBCTypes; /* if (connTypes == null) { // Pluggable connection types: Vector plugTypes = new Vector(); try { plugTypes = (Vector) Class.forName( System.getProperty( "org.hsqldb.util.ConnectionTypeClass")).newInstance(); } catch (Exception e) { ; } connTypes = new String[(plugTypes.size() / 3) + sJDBCTypes.length][3]; int i = 0; for (int j = 0; j < plugTypes.size(); i++) { connTypes[i] = new String[3]; connTypes[i][0] = plugTypes.elementAt(j++).toString(); connTypes[i][1] = plugTypes.elementAt(j++).toString(); connTypes[i][2] = plugTypes.elementAt(j++).toString(); } for (int j = 0; j < sJDBCTypes.length; i++, j++) { connTypes[i] = new String[3]; connTypes[i][0] = sJDBCTypes[j][0]; connTypes[i][1] = sJDBCTypes[j][1]; connTypes[i][2] = sJDBCTypes[j][2]; } } return (connTypes); */ } private static final String fileName = "hsqlprefs.dat"; private static File recentSettings = null; static synchronized Hashtable loadRecentConnectionSettings() throws IOException { Hashtable list = new Hashtable(); try { if (recentSettings == null) { setHomeDir(); if (homedir == null) { return list; } recentSettings = new File(homedir, fileName); if (!recentSettings.exists()) { JavaSystem.createNewFile(recentSettings); return list; } } } catch (Throwable e) { return list; } FileInputStream in = null; ObjectInputStream objStream = null; try { in = new FileInputStream(recentSettings); objStream = new ObjectInputStream(in); list.clear(); while (true) { ConnectionSetting setting = (ConnectionSetting) objStream.readObject(); if (!emptySettingName.equals(setting.getName())) { list.put(setting.getName(), setting); } } } catch (EOFException eof) { // reached end of file -- this is not clean but it works } catch (ClassNotFoundException cnfe) { throw (IOException) new IOException("Unrecognized class type " + cnfe.getMessage()); } catch (ClassCastException cce) { throw (IOException) new IOException("Unrecognized class type " + cce.getMessage()); } catch (Throwable t) {} finally { if (objStream != null) { objStream.close(); } if (in != null) { in.close(); } } return list; } static String emptySettingName = "Recent settings..."; /** * Adds the new settings name if it does not nexist, or overwrites the old one. */ static void addToRecentConnectionSettings(Hashtable settings, ConnectionSetting newSetting) throws IOException { settings.put(newSetting.getName(), newSetting); ConnectionDialogCommon.storeRecentConnectionSettings(settings); } /** * Here's a non-secure method of storing recent connection settings. * * @param settings ConnectionSetting[] * @throw IOException if something goes wrong while writing */ private static void storeRecentConnectionSettings(Hashtable settings) { try { if (recentSettings == null) { setHomeDir(); if (homedir == null) { return; } recentSettings = new File(homedir, fileName); if (!recentSettings.exists()) { // recentSettings.createNewFile(); } } if (settings == null || settings.size() == 0) { return; } // setup a stream to a physical file on the filesystem FileOutputStream out = new FileOutputStream(recentSettings); ObjectOutputStream objStream = new ObjectOutputStream(out); Enumeration en = settings.elements(); while (en.hasMoreElements()) { objStream.writeObject(en.nextElement()); } objStream.flush(); objStream.close(); out.close(); } catch (Throwable t) {} } /** * Removes the recent connection settings file store. */ static void deleteRecentConnectionSettings() { try { if (recentSettings == null) { setHomeDir(); if (homedir == null) { return; } recentSettings = new File(homedir, fileName); } if (!recentSettings.exists()) { recentSettings = null; return; } recentSettings.delete(); recentSettings = null; } catch (Throwable t) {} } private static String homedir = null; public static void setHomeDir() { //#ifdef JAVA2FULL if (homedir == null) { try { Class c = Class.forName("sun.security.action.GetPropertyAction"); Constructor constructor = c.getConstructor(new Class[]{ String.class }); java.security.PrivilegedAction a = (java.security.PrivilegedAction) constructor.newInstance( new Object[]{ "user.home" }); homedir = (String) java.security.AccessController.doPrivileged(a); } catch (Exception e) { System.err.println( "No access to home directory. Continuing without..."); } } //#endif } } Other HSQLDB examples (source code examples)Here is a short list of links related to this HSQLDB ConnectionDialogCommon.java source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.