JDBC连接不同数据库(从基础来了解耦合)

JDBC连接不同数据库的实现步骤:

一、在Myeclipse或者Eclipse中新建JavaProject,命名:JDBCTest;

二、在src目录下新建类:JDBC.java,同时输入包名:com.jdbc,同时在src目录下新建                 jdbc.properties配置文件;

三、建立一个jar文件,将不同厂商的数据库驱动文件放置在此目录下;

四、右键点击驱动文件,点击 Build Path --> add class path ,此时在引用类库中会出现数据库       jar 包;

    此时目录结构如下


技术分享


  作为程序猿,还是直接上代码较为实际!

  jdbc.properties:


driver=com.mysql.jdbc.Driver

jdbcUrl=jdbc:mysql:://localhost:3306/test

user=root

password=root


  JDBC.java:


package com.jdbc;

import java.io.InputStream;

import java.sql.Connection;

import java.sql.Driver;

import java.util.Properties;

   /**

    * Driver是一个驱动接口,不同的数据库厂商必须提供实现的接口,才能获取数据源,

    * 即用Driver的实现类对象来获取数据库的连接。

    */

class JDBC{

    /**

     * 此方法耦合度较高,分析原因如下:

     *       1、加载数据库的驱动是写死的,即 mysql,不够灵活(...=new com.mysql.jdbc...);

     *       2、数据库的用户名和密码也是直接写在代码中的,不便于修改;

     *       3、数据库的 URL 也是写在代码中的,若需要更换数据库,不便于修改。

     */

    public static void connTest01() throws Exception{

// 用mysql来实现Driver接口

Driver driver = new com.mysql.jdbc.Driver();

Properties properties = new Properties();

        //mysql的用户名和密码,注意此时键的值必须是 user 和 password,可以看看帮助文档。

        properties.put("user","root");

        properties.put("password","root");

        String URL = "jdbc:mysql://localhost:3306/test";

        //Connection也是一个接口,记得导入包的时候导正确,是 java.sql.Connection包;

        Connection conn = driver.connect( URL , properties );

        System.out.println("Connection对象的测试一");

        System.out.println(conn);

        }

    /**

     * 此方法相对于上面的方法耦合度较低,将连接数据库的一些参数写入jdbc.properties文件

     * 中,方便以后进行操作。

     */

    public static void connTest02() throws Exception{

    //运用输入流获取配置文件(下面一行代码运行时会有报错,忽视直接运行就可以了,当            //然,你也可以使用其他方法来加载配置文件)

       InputStream is = getClass().getClassLoader().getResourceAsStream("jdbc.properties");

       Properties properties = new Properties();

       properties.load(is);

       String driverClass = properties.getProperty("driver");

       String URL = properties.getProperty("jdbcURL");

       String user = properties.getProperty("user");

       String password = properties.getProperty("password");

//运用反射来加载驱动,注意:需要强转,因为是Object类型。

       Driver driver = (Driver) Class.forName(driverClass).newInstance();

       Properties info = new Properties();

       info.put("user", user);

       info.put("password", password);

       Connection conn = driver.connect(URL, info);

       System.out.println("Connection对象的测试二");

       System.out.println(conn);

   }

   /**

    *  测试

    * @throws Exception 

    */

    public static void main(String[] args) throws Exception {

//connTest01();

        connTest02();

    }

}


此代码可以直接运行。以上的例子主要是针对 mysql 数据库的,如果需要连接其他数据库,在jdbc.properties修改信息就可以了,而不必在代码里面修改相关的内容。

总结:刚开始写此博文的时候,运用的是JUnit4单元来测试的,就不需要main方法了,结果将博文中的代码拷贝到myeclipse中会报错,从“度娘”查询解决了2,3个小时,结果可能是JUnit4版本的问题,(也没换版本)最后只有用main方法来测试了。当然了,此博文的重点是连接不同数据库。


对于以上内容,若有异议,欢迎留言。

本文出自 “木子猿” 博客,请务必保留此出处http://muziyuan.blog.51cto.com/6180523/1616312

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。