封装连接有关操作 : 连接 « 数据库JDBC « Java

En
Java
1. 图形用户界面
2. 三维图形动画
3. 高级图形
4. 蚂蚁编译
5. Apache类库
6. 统计图
7. 
8. 集合数据结构
9. 数据类型
10. 数据库JDBC
11. 设计模式
12. 开发相关类
13. EJB3
14. 电子邮件
15. 事件
16. 文件输入输出
17. 游戏
18. 泛型
19. GWT
20. Hibernate
21. 本地化
22. J2EE平台
23. 基于J2ME
24. JDK-6
25. JNDI的LDAP
26. JPA
27. JSP技术
28. JSTL
29. 语言基础知识
30. 网络协议
31. PDF格式RTF格式
32. 映射
33. 常规表达式
34. 脚本
35. 安全
36. Servlets
37. Spring
38. Swing组件
39. 图形用户界面
40. SWT-JFace-Eclipse
41. 线程
42. 应用程序
43. Velocity
44. Web服务SOA
45. 可扩展标记语言
Java 教程
Java » 数据库JDBC » 连接屏幕截图 
封装连接有关操作
 
/*
 * 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 configthrows 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 configthrows 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;
    }
  }
}


           
         
  
Related examples in the same category
1. 连接到不止一个数据库
2. 验证数据库安装
3. 调试数据库连接
4. 创建连接性能
5. 设置保存点
6. JDBC的简单连接
7. 加载一些驱动程序
8. 试验加载的驱动程序,并连接到数据库
9. 负载MySQL的JDBC驱动程序
10. 甲骨文JDBC驱动程序加载
11. 甲骨文JDBC驱动程序的负载测试: NewInstance
12. 试验注册的Oracle JDBC驱动程序
13. 安装的Oracle驱动程序和执行结果
14. Test Thin Net8 App
15. 指定一个字符集时,连接到一个数据库管理系统
16. 列出所有可用参数的创建一个JDBC连接
17. String java.sql.DriverPropertyInfo.name (Get name of property)
18. boolean java.sql.DriverPropertyInfo.required (Is property value required?)
19. String java.sql.DriverPropertyInfo.value (Get current value)
20. String java.sql.DriverPropertyInfo.description (Get description of property)
21. String[] java.sql.DriverPropertyInfo.choices (Get possible choices for property; if null, value can be any string)
22. 确定是否数据库支持交易
23. Committing and Rolling Back Updates to a Database
24. 停用自动commit模式中的JDBC
www.java2java.com | Contact Us
Copyright 2010 - 2030 Java Source and Support. All rights reserved.
All other trademarks are property of their respective owners.