⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jdbcproperties.java

📁 eq跨平台查询工具源码 eq跨平台查询工具源码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                   append("its place.");                GUIUtilities.displayErrorMessage(sb.toString());                                if (file != null && file.exists()) {                    file.renameTo(new File(confPath + "jdbcdrivers.xml.old"));                }                recreateDefinitionsFile(from, to);                loadDrivers();            }             finally {                if (in != null) {                    try {                        in.close();                    } catch (IOException e) {}                }            }                    }        else {            // copy the default file            recreateDefinitionsFile(from, to);            // reload the drivers            loadDrivers();        }            }        private static void recreateDefinitionsFile(String from, String to) {        try {            FileUtils.copyResource(from, to);        } catch (IOException ioExc) {            GUIUtilities.displayErrorMessage(                    "An error occurred recreating the driver definitions.");        }    }    private static int idCount = 1;        static class XMLDriverHandler extends DefaultHandler {                private DatabaseDriver dd = new DatabaseDriver();        private CharArrayWriter contents = new CharArrayWriter();        public XMLDriverHandler() {}                public void startElement(String nameSpaceURI, String localName,                                 String qName, Attributes attrs) {            contents.reset();        }                public void endElement(String nameSpaceURI, String localName,                               String qName) {            if (dd == null) {                dd = new DatabaseDriver();            }            if (localName.equals("id")) {                dd.setId(Long.parseLong(contents.toString()));            } else if (localName.equals("name")) {                dd.setName(contents.toString());            } else if (localName.equals("description")) {                dd.setDescription(contents.toString());            } else if (localName.equals("type")) {                dd.setDatabaseType(Integer.parseInt(contents.toString()));            } else if (localName.equals("path")) {                dd.setPath(contents.toString());            } else if (localName.equals("classname")) {                dd.setClassName(contents.toString());                                // check the default id is set against the ODBC driver                if ("sun.jdbc.odbc.JdbcOdbcDriver".equals(dd.getClassName()) &&                        dd.getId() != DEFAULT_ODBC_ID) {                    dd.setId(DEFAULT_ODBC_ID);                    resaveDrivers = true;                }                            } else if (localName.equals("url")) {                // replace the old format of [server] etc with the new                String url = contents.toString();                if (url.contains("[server]")) {                    resaveDrivers = true;                    url = url.replaceAll("\\[server\\]", ConnectionDataSource.HOST);                }                /*                if (url.contains("[port]")) {                    resaveDrivers = true;                    url = url.replaceAll("\\[port\\]", ConnectionDataSource.PORT);                }                if (url.contains("[source]")) {                    resaveDrivers = true;                    url = url.replaceAll("\\[source\\]", ConnectionDataSource.SOURCE);                }*/                dd.setURL(url);            }            else if (localName.equals("databasedrivers")) {                if (dd.getId() == 0) {                    resaveDrivers = true;                    dd.setId(System.currentTimeMillis() + idCount);                    idCount++;                }                drivers.add(dd);                dd = null;                            }        }                public void characters(char[] data, int start, int length) {            contents.write(data, start, length);        }                public void ignorableWhitespace(char[] data, int start, int length) {            characters(data, start, length);        }                public void error(SAXParseException spe) throws SAXException {            throw new SAXException(spe.getMessage());        }    } // XMLHandler        static class DriverParser implements XMLReader {        private String nsu = "";        private Attributes atts = new AttributesImpl();                private static String rootElement = "jdbcdrivers";        private static String DATABASE_DRIVERS = "databasedrivers";        private static String NAME = "name";        private static String DESCRIPTION = "description";        private static String TYPE = "type";        private static String PATH = "path";        private static String CLASS_NAME = "classname";        private static String URL = "url";        private static String ID = "id";                private ContentHandler handler;                private static char[] newLine = {'\n'};        private static String indent_1 = "\n   ";        private static String indent_2 = "\n      ";                public DriverParser() {}                public void parse(InputSource input) throws SAXException, IOException {            if (!(input instanceof DriverInputSource))                throw new SAXException("Parser can only accept a DriverInputSource");                        parse((DriverInputSource)input);        }                public void parse(DriverInputSource input) throws IOException, SAXException {            try {                if (handler == null) {                    throw new SAXException("No content handler");                }                                DatabaseDriver[] dd = input.getDrivers();                                handler.startDocument();                handler.startElement(nsu, rootElement, rootElement, atts);                handler.ignorableWhitespace(newLine, 0, 1);                                String marker = null;                                for (int i = 0; i < dd.length; i++) {                    handler.ignorableWhitespace(indent_1.toCharArray(), 0, indent_1.length());                    handler.startElement(nsu, DATABASE_DRIVERS, DATABASE_DRIVERS, atts);                                        if (dd[i].getId() == 0) {                        dd[i].setId(System.currentTimeMillis() + idCount);                        idCount++;                    }                                        writeXML(ID, Long.toString(dd[i].getId()), indent_2);                    writeXML(NAME, dd[i].getName(), indent_2);                    writeXML(DESCRIPTION, dd[i].getDescription(), indent_2);                    writeXML(TYPE, Integer.toString(dd[i].getType()), indent_2);                    writeXML(PATH, dd[i].getPath(), indent_2);                    writeXML(CLASS_NAME, dd[i].getClassName(), indent_2);                    writeXML(URL, dd[i].getURL(), indent_2);                                        handler.ignorableWhitespace(indent_1.toCharArray(), 0, indent_1.length());                    handler.endElement(nsu, DATABASE_DRIVERS, DATABASE_DRIVERS);                    handler.ignorableWhitespace(newLine, 0, 1);                }                                handler.ignorableWhitespace(newLine, 0, 1);                handler.endElement(nsu, rootElement, rootElement);                handler.endDocument();                            } catch (Exception e) {                e.printStackTrace();            }         }                private void writeXML(String name, String line, String space)            throws SAXException {                        if (line == null) {                line = Constants.EMPTY;            }                        int textLength = line.length();                        handler.ignorableWhitespace(space.toCharArray(), 0, space.length());                        handler.startElement(nsu, name, name, atts);                        handler.characters(line.toCharArray(), 0, textLength);                        handler.endElement(nsu, name, name);        }                public void setContentHandler(ContentHandler handler) {            this.handler = handler;        }                public ContentHandler getContentHandler() {            return this.handler;        }                public void setErrorHandler(ErrorHandler handler) {}                public ErrorHandler getErrorHandler() {            return null;        }                public void parse(String systemId) throws IOException, SAXException {        }                public DTDHandler getDTDHandler() {            return null;        }                public EntityResolver getEntityResolver() {            return null;        }                public void setEntityResolver(EntityResolver resolver) {}                public void setDTDHandler(DTDHandler handler) {}                public Object getProperty(String name) {            return null;        }                public void setProperty(String name, java.lang.Object value) {}                public void setFeature(String name, boolean value) {}                public boolean getFeature(String name) {            return false;        }    } // class DriverParser        static class DriverInputSource extends InputSource {        private DatabaseDriver[] dda;                public DriverInputSource(DatabaseDriver[] dd) {            dda = dd;        }                public DatabaseDriver[] getDrivers() {            return dda;        }            } // class DriverInputSource        }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -