Encapsulate the Connection-related Operations That Every JDBC Program Seems to Use
From Java Example Source Code
Contents |
[edit] Overview - Encapsulate the Connection-related Operations That Every JDBC Program Seems to Use
This Java example programs shows how to encapsulate the connection-related operations that every JDBC program seems to use.
[edit] Java Source Code
- Package: com.darwinsys
- File: ConnectionUtil.java
package com.darwinsys; /* * Copyright (c) Ian F. Darwin, http://www.darwinsys.com/, 1996-2002. * All rights reserved. Software written by Ian F. Darwin and others. * $Id: LICENSE,v 1.8 2004/02/09 03:33:38 ian Exp $ * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 THE AUTHOR 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. * * Java, the Duke mascot, and all variants of Sun's Java "steaming coffee * cup" logo are trademarks of Sun Microsystems. Sun's, and James Gosling's, * pioneering role in inventing and promulgating (and standardizing) the Java * language and environment is gratefully acknowledged. * * The pioneering role of Dennis Ritchie and Bjarne Stroustrup, of AT&T, for * inventing predecessor languages C and C++ is also gratefully acknowledged. */ import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.Properties; /** * Encapsulate the Connection-related operations that every JDBC program seems * to use. */ public class ConnectionUtil { /** The default config filename, relative to ${user.home} */ public static final String DEFAULT_NAME = ".db.properties"; /** The current config filename */ private static String configFileName = System.getProperty("user.home") + File.separator + DEFAULT_NAME; /** * Get a Connection for the given config using the default or set property * file name */ public static Connection getConnection(String config) throws Exception { try { Properties p = new Properties(); p.load(new FileInputStream(configFileName)); return getConnection(p, config); } catch (IOException ex) { throw new Exception(ex.toString()); } } /** Get a Connection for the given config name from a provided Properties */ public static Connection getConnection(Properties p, String config) throws Exception { try { String db_driver = p.getProperty(config + "." + "DBDriver"); String db_url = p.getProperty(config + "." + "DBURL"); String db_user = p.getProperty(config + "." + "DBUser"); String db_password = p.getProperty(config + "." + "DBPassword"); if (db_driver == null || db_url == null) { throw new IllegalStateException("Driver or URL null: " + config); } return createConnection(db_driver, db_url, db_user, db_password); } catch (ClassNotFoundException ex) { throw new Exception(ex.toString()); } catch (SQLException ex) { throw new Exception(ex.toString()); } } public static Connection createConnection(String db_driver, String db_url, String db_user, String db_password) throws ClassNotFoundException, SQLException { // Load the database driver System.out.println("Loading driver " + db_driver); Class.forName(db_driver); System.out.println("Connecting to DB " + db_url); return DriverManager.getConnection(db_url, db_user, db_password); } /** * Returns the full path of the configuration file being used. * * @return Returns the configFileName. */ public static String getConfigFileName() { return configFileName; } /** * Sets the full path of the config file to read. * * @param configFileNam * The FileName of the configuration file to use. */ public static void setConfigFileName(String configFileNam) { configFileName = configFileNam; File file = new File(configFileName); if (!file.canRead()) { throw new IllegalArgumentException("Unreadable: " + configFileName); } try { ConnectionUtil.configFileName = file.getCanonicalPath(); } catch (IOException ex) { System.err.println("Warning: IO error checking path: " + configFileName); ConnectionUtil.configFileName = configFileName; } } }
[edit] What Result You Can Get
Coming soon...
[edit] Required External Library for this Java Example
In order to run this example program, one of the following libraries may be required:
- MySQL JDBC driver. You can download it from MySQL Connector/J — for connecting to MySQL from Java
- Oracle JDBC driver. You can download it from JDBC driver for Oracle.
- MSSQL JDBC driver. There are several vendors provide JDBC driver for MSSQL, you should chose one of them:
- jTDS - SQL Server and Sybase JDBC driver. It is an open source JDBC 3.0 Type 4 driver for Microsoft SQL Server (6.5, 7.0, 2000 and 2005) and Sybase. jTDS is the fastest JDBC driver for MS SQL Server and is a complete implementation of the JDBC spec. You can download it from jTDS - SQL Server and Sybase JDBC driver
- MSSQL JDBC driver from Microsoft.
- JDBC driver for MSSQL 2000. You can download it from SQL Server 2000 Driver for JDBC Service Pack 3
- JDBC driver for MSSQL 2005. You can download it from Microsoft SQL Server 2005 JDBC Driver 1.2
- PostgreSQL JDBC driver. You can download it from PostgreSQL JDBC driver. It is a pure Java (Type IV) implementation.
- HSQLDB JDBC Driver. HSQLDB is the leading SQL relational database engine written in Java. It has a JDBC driver and supports a rich subset of ANSI-92 SQL plus SQL 99 and 2003 enhancements. You can download it from hsqldb.
http://www.ase2009.com/ online casino 132 http://www.hellzyea.com/health health insurance 8DDD http://www.yourautoinsurancesite.com/ auto insurance quotes 135811 http://www.makemeasammich.com/ auto insurance mcnxu
[edit] Question & Answer
Any question?
Click edit and post your question or answer here.
