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

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

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

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

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

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

此时目录结构如下

30d2ff06c9b29088e708cc622afd17d2.png

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

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方法来测试了。当然了,此博文的重点是连接不同数据库。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值