View Javadoc
1 /* ====================================================================
2 * License:
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 *
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 *
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in
13 * the documentation and/or other materials provided with the
14 * distribution.
15 *
16 * 3. The end-user documentation included with the redistribution,
17 * if any, must include the following acknowledgment:
18 * "This product includes software developed by
19 * Robert Half International (http://www.rhi.com/)."
20 * Alternately, this acknowledgment may appear in the software itself,
21 * if and wherever such third-party acknowledgments normally appear.
22 *
23 * 4. The names "Parc", "RHI", and "Robert Half International" must
24 * not be used to endorse or promote products derived from this
25 * software without prior written permission. For written
26 * permission, please contact pete.mckinstry@rhi.com.
27 *
28 * 5. Products derived from this software may not be called "PARC",
29 * nor may "PARC" appear in their name, without prior written
30 * permission of Robert Half International.
31 *
32 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
33 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
34 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
35 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
36 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
37 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
38 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
39 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
40 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
41 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
42 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
43 * SUCH DAMAGE.
44 * ====================================================================
45 *
46 */
47 package com.rhi.architecture.db;
48
49 import com.rhi.architecture.config.ConfigurationException;
50 import com.rhi.architecture.logging.LogUtil;
51 import com.rhi.architecture.logging.Logger;
52 import com.rhi.architecture.resource.ResourceContext;
53
54 import java.sql.*;
55
56 import javax.sql.DataSource;
57
58 /***
59 * Helper method to create a DataSource.
60 *
61 * @author Pete McKinstry
62 * @copyright 2002, Robert Half Int'l., Inc. All rights reserved.
63 *
64 * @since 1.0
65 */
66 public class DBUtil {
67
68 private static Logger log = null;
69 static {
70 try {
71 log = LogUtil.getLogger();
72 }
73 catch (ConfigurationException e) {
74 log = LogUtil.getDefaultLogger();
75 }
76 }
77
78 /***
79 * Get the default DataSource
80 *
81 * @return DataSource
82 *
83 * @since 1.0
84 * @throws ConfigurationException
85 */
86 public static DataSource getDataSource()
87 throws ConfigurationException {
88 return getDataSource(DataSourceFactory.DEFAULT_DATA_SOURCE_NAME);
89 }
90
91 /***
92 * Get a specific DataSource
93 *
94 * @param name
95 * @return DataSource
96 * @throws ConfigurationException
97 *
98 * @since 1.0
99 */
100 public static DataSource getDataSource(String name)
101 throws ConfigurationException {
102
103 ResourceContext ctx = new ResourceContext();
104 DataSourceFactory factory =
105 (DataSourceFactory) ctx.lookup(DataSourceFactory.KEY);
106 if (factory == null) {
107 log().error("DataSourceFactory invalid.");
108 throw new ConfigurationException("unable to load datasourcefactory.");
109 }
110 DataSource ds = factory.getDataSource(name);
111 if (ds == null) {
112 log().error("DataSource invalid.");
113 throw new ConfigurationException("unable to load datasource.");
114 }
115 return ds;
116 }
117
118 /***
119 * helper method for closing connection objects. Ignores exceptions that
120 * occur during the close() method.
121 * @param conn
122 */
123 public static void close(Connection conn) {
124 if (conn!=null) {
125 try {
126 conn.close();
127 }
128 catch (SQLException e) {
129 // ignore
130 }
131 }
132 }
133
134 /***
135 * helper method for closing statement objects. Ignores exceptions that
136 * occur during the close() method.
137 * @param stmt
138 */
139 public static void close(Statement stmt) {
140 if (stmt!=null) {
141 try {
142 stmt.close();
143 }
144 catch (SQLException e) {
145 // ignore
146 }
147 }
148 }
149
150 /***
151 * helper method for closing result set objects. Ignores exceptions that
152 * occur during the close() method.
153 * @param rs
154 */
155 public static void close(ResultSet rs) {
156 if (rs!=null) {
157 try {
158 rs.close();
159 }
160 catch (SQLException e) {
161 // ignore
162 }
163 }
164 }
165
166 /***
167 * return the configured logger. If a configuration error was detected,
168 * a default logger will be returned.
169 *
170 * @return Logger
171 */
172 public static Logger log() {
173 return log;
174 }
175
176 }
This page was automatically generated by Maven