JDBC 访问各种数据库url 及驱动(z)

A. Firebird
  url=jdbc:firebirdsql:[HOST_NAME]/[PORT:][FULL_PATH_TO_DATABASE_FILE]
  driver=org.firebirdsql.jdbc.FBDriver

B. Informix
  url=jdbc:informix-sqli:[HOST_NAME]:[PORT]/[DATABASE_NAME]
  driver=com.informix.jdbc.IfxDriver

C. Interbase
  url=jdbc:interbase:[HOST_NAME]/[PORT:][FULL_PATH_TO_DATABASE_FILE]
  driver=interbase.interclient.Driver

D. Microsoft SQL Server
  url=jdbc:microsoft:sqlserver://[Server Name]:[PORT]
  driver=com.microsoft.jdbc.sqlserver.SQLServerDriver

E. MySQL
  url=jdbc:mysql://[HOST]:[PORT]/[database_name]
  driver=com.mysql.jdbc.Driver

F. Oracle
  url=jdbc:oracle:thin:@[SERVER_NAME]:[PORT]:[DBNAME]
  driver=oracle.jdbc.driver.OracleDriver
  
G. PostgreSQL
  url=jdbc:postgresql://[SERVER_NAME]/[DATABASE_NAME]
  driver=org.postgresql.Driver

H. SAP DB
  url=jdbc:sapdb://[SERVER_NAME]/[DATABASE_NAME]
  driver=com.sap.dbtech.jdbc.DriverSapDB

I. Sybase
  url=jdbc:sybase:Tds:[SERVER_NAME]:[PORT]/[DATABASE_NAME]
  driver=com.sybase.jdbc2.jdbc.SybDriver

J. JDBC-ODBC Bridge
  url=jdbc:odbc:ODBC_DATASOURCE
  driver=sun.jdbc.odbc.JdbcOdbcDriver
  
K. DB2
  url=jdbc:db2://[SERVER_NAME]:[PORT]/[DATABASE_NAME]
  driver=COM.ibm.db2.jdbc.app.DB2Driver

 
 
连接(Connection)是一个代表与数据库进行的程序连接的对象。通过连接,可以执行SQL语句、返回数据库操作结果等。

    创建指定数据库的URL

    要建立与数据库的连接,首先要创建指定数据库的URL。连接通常是通过数据库的URL对象,利用DriverManager的getConnection方法建立的。数据库URL对象与网络资源的统一资源定位类似,其构成格式如下:    jdbc:subProtocol:subName://hostname:port; DatabaseName=XXX

    其中:
    jdbc表示当前通过Java的数据库连接进行数据库访问。
    subProtocol表示通过某种驱动程序支持的数据库连接机制。
    subName表示在当前连接机制下的具体名称。
    hostname表示主机名。
    port表示相应的连接端口。
    DatabaseName是要连接的数据库的名称。

    按照上述构造规则,可以构造如下类型的数据库URL:
    jdbc:microsoft:sqlserver ://localhost:1433;DatabaseName=test

    该数据库URL表示利用Microsoft提供的机制,选择名称为sqlserver的驱动通过1433端口访问本机上的test数据库。

    加载驱动程序

    DriverManager 类包含一列 Driver 类,它们已通过调用方法DriverManager. registerDriver 对自己进行了注册。所有 Driver类都必须包含一个静态部分。它创建该类的实例,然后在加载该实例时 DriverManager 类进行注册。这样,用户在正常情况下将不会直接调用 DriverManager.registerDriver,而是在加载驱动程序时由驱动程序自动调用。

    在JDBC中,通常有两种加载驱动程序的方式。
    一种是将驱动程序添加到 java.lang.System 的属性 jdbc.drivers 中。这是一个由 DriverManager 类加载的驱动程序类名的列表,用冒号分隔。在JDBC的java.sql. DriverManager类初始化时,在JVM的系统属性中搜索jdbc.drivers字段的内容。如果存在以冒号分隔的驱动程序名称,则DriverManager类加载相应的驱动程序。
    另一种方式是在程序中利用Class.forName()方法加载指定的驱动程序,如:
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver")

    这将显式地加载驱动程序类。由于这与外部设置无关,因此推荐使用这种加载驱动程序的方法。

    在以上两种情况中,新加载的 Driver 类都要通过调用 DriverManager.registerDriver类进行自我注册。

     实例:建立数据库连接

    加载 Driver 类并在 DriverManager 类中注册后,它们即可用来与数据库建立连接。当调用 DriverManager.getConnection 方法发出连接请求时,DriverManager 将检查每个驱动程序,查看它是否可以建立连接。创建数据库连接时需要提供数据库的URL和驱动类型,并提供访问数据库的用户名和密码。如果有多个 JDBC 驱动程序可以与给定的 URL 连接,DriverManager 将轮流在每个驱动程序上调用方法 Driver.connect,并向它们传递用户开始传递给方法 DriverManager.getConnection 的 URL 对驱动程序进行测试,然后连接第一个可以成功连接到给定 URL 的驱动程序。示例13-1是一个用来与SQL Server数据库建立连接的例子。
    【程序源代码】

1	// ==================== Program Description ==========================
2	// 程序名称:示例13-1 : DBConnection.java
3	// 程序目的:建立数据库连接
4	// ==============================================================
5	import java.sql.*;
6	
7	public class DBConnection 
8	{
9	    // 指定驱动程序
10	    private static String driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
11	    // 创建指定数据库的URL
12	    private static String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test";
13	    // 提供用户名和密码
14	    private static String user="sa";
15	    private static String password="sasa";
16	
17	    public static Connection getConnection() {
18	        Connection con;
19	        try {
20	 		  // 加载驱动程序
21	           Class.forName(driver);
22	           // 创建连接
23	           con = DriverManager.getConnection(url, user, password);
24	           return con;
25	        } catch (ClassNotFoundException e) {
26	            System.out.println(e.getMessage());
27	        } catch (SQLException e) {
28	            System.out.println(e.getMessage());
29	        }
30	        return null;
31	    }
32	}

    【程序注解】
    在创建连接的方法中,调用的是DriverManager类的静态成员方法getConnection(),3个参数分别为数据库的URL、用户名和密码。

    另外,在连接数据库的过程中要注意异常的捕获。在第30行一定要返回一个null值表示数据库连接失败,否则程序编译时会报错。

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

生活在西班牙

自己动手丰衣足食

BlueAsteroid

Just another WordPress.com site

Jing's Blog

Just another WordPress.com site

Start from here......

我的心情魔方

天才遠私廚

希望能做一個分享各種資訊的好地方

语义噪声

西瓜大丸子汤的博客

笑对人生,傲立寰宇

Just another WordPress.com site

Where On Earth Is Waldo?

A Project By Melanie Coles

the Serious Computer Vision Blog

A blog about computer vision and serious stuff

Cauthy's Blog

paper review...

Cornell Computer Vision Seminar Blog

Blog for CS 7670 - Special Topics in Computer Vision

datarazzi

Life through nerd-colored glasses

Luciana Haill

Brainwaves Augmenting Consciousness

槑烎

1,2,∞

Dr Paul Tennent

and the university of nottingham

turn off the lights, please

A bunch of random, thinned and stateless thoughts around the Web

%d bloggers like this: