1. /*
  2. * Copyright 1999-2004 The Apache Software Foundation.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. package org.apache.commons.dbcp;
  17. import java.sql.Connection;
  18. import java.sql.DriverManager;
  19. import java.sql.SQLException;
  20. import java.util.Properties;
  21. /**
  22. * A {@link DriverManager}-based implementation of {@link ConnectionFactory}.
  23. *
  24. * @author Rodney Waldhoff
  25. * @author Ignacio J. Ortega
  26. * @version $Revision: 1.8 $ $Date: 2004/02/28 12:18:17 $
  27. */
  28. public class DriverManagerConnectionFactory implements ConnectionFactory {
  29. public DriverManagerConnectionFactory(String connectUri, Properties props) {
  30. _connectUri = connectUri;
  31. _props = props;
  32. }
  33. public DriverManagerConnectionFactory(String connectUri, String uname, String passwd) {
  34. _connectUri = connectUri;
  35. _uname = uname;
  36. _passwd = passwd;
  37. }
  38. public Connection createConnection() throws SQLException {
  39. if(null == _props) {
  40. if((_uname == null) || (_passwd == null)) {
  41. return DriverManager.getConnection(_connectUri);
  42. } else {
  43. return DriverManager.getConnection(_connectUri,_uname,_passwd);
  44. }
  45. } else {
  46. return DriverManager.getConnection(_connectUri,_props);
  47. }
  48. }
  49. protected String _connectUri = null;
  50. protected String _uname = null;
  51. protected String _passwd = null;
  52. protected Properties _props = null;
  53. }