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