编写程序模拟JDBC的本质:
第一步:定义JDBC接口。
package simulate_jdbc;
/*
SUN公司编写连接数据库规则,写了一套JDBC接口
*/
public interface JDBC {
// 连接数据库的方法
void connect();
}
第二步:编写不同品牌的数据库驱动。
例如Oracle,MySQL,Sql Server等。
package simulate_jdbc;
/*
Oracle厂家编写驱动实现类,实现JDBC接口
*/
public class Oracle implements JDBC {
@Override
public void connect() {
System.out.println("连接Oracle数据库成功!");
}
}
package simulate_jdbc;
/*
MySQL厂家编写驱动实现类,实现JDBC接口
*/
public class MySQL implements JDBC {
@Override
public void connect() {
System.out.println("连接MySQL数据库成功!");
}
}
package simulate_jdbc;
/*
Sql Server厂家编写驱动实现类,实现JDBC接口
*/
public class SqlServer implements JDBC {
@Override
public void connect() {
System.out.println("连接Sql Server数据库成功!");
}
}
第三步:程序员作为调用者,可以连接不同品牌的数据库。
package simulate_jdbc;
import java.util.ResourceBundle;
/*
java程序员属于JDBC接口的调用者,只需面向JDBC接口编程即可
无需知道连接的数据库的具体实现,降低了程序员与数据库的耦合
*/
public class Test {
public static void main(String[] args) throws Exception {
//JDBC jdbc = new Oracle();
//JDBC jdbc = new MySQL();
//JDBC jdbc = new SqlServer();
// 以后可以通过反射机制,动态读取配置文件中的信息,指定连接哪个数据库
ResourceBundle bundle = ResourceBundle.getBundle("dir\\SqlConnect");
String className = bundle.getString("className");
Class c = Class.forName(className);
JDBC jdbc = (JDBC)c.newInstance();
// 以下代码都是面向接口调用方法,不需要修改
jdbc.connect();
}
}