KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > sun > j2ee > blueprints > util > dao > DAOUtils


1 /*
2 * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
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 * - Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 *
11 * - Redistribution 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 * Neither the name of Sun Microsystems, Inc. or the names of
17 * contributors may be used to endorse or promote products derived
18 * from this software without specific prior written permission.
19 *
20 * This software is provided "AS IS," without a warranty of any
21 * kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND
22 * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY,
23 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY
24 * EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES
25 * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
26 * DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN
27 * OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR
28 * FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR
29 * PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF
30 * LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE,
31 * EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
32 *
33 * You acknowledge that Software is not designed, licensed or intended
34 * for use in the design, construction, operation or maintenance of
35 * any nuclear facility.
36 */

37
38 package com.sun.j2ee.blueprints.util.dao;
39
40 import java.sql.*;
41 import javax.sql.*;
42 import javax.naming.*;
43 import com.sun.j2ee.blueprints.servicelocator.web.ServiceLocator;
44
45 public class DAOUtils {
46     
47     private DAOUtils() { }
48     
49     private static DataSource getDataSource(String JavaDoc dsName)
50     throws DAOSystemException {
51         String JavaDoc dataSourceName = ServiceLocator.getInstance().getString(dsName);
52         return (DataSource) ServiceLocator.getInstance().getDataSource(dataSourceName);
53     }
54     
55     public static Connection getDBConnection(String JavaDoc source)
56     throws DAOSystemException {
57         try {
58             return getDataSource(source).getConnection();
59         } catch (SQLException se) {
60             throw new DAOSystemException("SQL Exception while getting "
61             + "DB connection : \n" + se);
62         }
63     }
64     
65     public static void closeConnection(Connection dbConnection)
66     throws DAOSystemException {
67         try {
68             if (dbConnection != null && !dbConnection.isClosed()) {
69                 dbConnection.close();
70             }
71         } catch (SQLException se) {
72             throw new DAOSystemException("SQL Exception while closing "
73             + "DB connection : \n" + se);
74         }
75     }
76     
77     public static void closeResultSet(ResultSet result)
78     throws DAOSystemException {
79         try {
80             if (result != null) {
81                 result.close();
82                 result = null;
83             }
84         } catch (SQLException se) {
85             throw new DAOSystemException("SQL Exception while closing "
86             + "Result Set : \n" + se);
87         }
88     }
89     
90     public static void closeStatement(PreparedStatement stmt)
91     throws DAOSystemException {
92         try {
93             if (stmt != null) {
94                 stmt.close();
95             }
96         } catch (SQLException se) {
97             throw new DAOSystemException("SQL Exception while closing "
98             + "Statement : \n" + se);
99         }
100     }
101 }
102
Popular Tags