JDBC_01对JDBC本质的理解
JDBC_01对JDBC本质的理解
1.JDBC是什么?
Java DataBase Connectivity(Java语言连接数据库)
2.JDBC的本质
JDBC是SUN公司制定的一套接口(interface),【在java.sql.*;包下有很多接口】。
接口都有调用者和实现者。
面向接口调用、面向接口写实现类,这些都属于面向接口编程。
为什么要面向接口编程?
- 
解耦和:降低程序的耦合度,提高程序的扩展力。 
- 
多态机制就是非常典型的:面向抽象编程。(不要面向具体编程) - 
建议: - 
Animal a = new Cat(); //Animal a = new Dog(); //走的方法 public void walk(Animal a){//面向父类型编程 }
 
- 
- 
不建议: - 
Cat cat = new Cat(); //Dog dog = new Dog();
 
- 
 
- 
思考:为什么SUN制定一套JDBC接口?
 因为每一个数据库底层实现原理都不一样。
 Oracle数据库有自己的实现原理。
 MySQL数据库有自己的实现原理。
 MS SqlServer数据库也有自己的实现原理。
 ...
 每一个数据库产品都有自己独特的实现原理。

3.通过编写程序模拟jdbc的本质
3.1模拟SUN公司
/**
 模拟SUN公司制定JDBC接口
*/
public interface JDBC {
	/*
	 连接数据库的方法
	*/
	void getConnection();
}
3.2模拟数据库厂家
1)MySQL数据库厂家:
/**
 模拟MySQL数据库厂家负责编写JDBC接口的实现类
*/
public class MySQL implements JDBC {
	public void getConnection(){
		System.out.println("连接MySQL数据库成功!");
	}
}
2)Oracle数据库厂家:
/**
 模拟Oracle数据库厂家负责编写JDBC接口的实现类
*/
public class Oracle implements JDBC {
	public void getConnection(){
		System.out.println("连接Oracle数据库成功!");
	}
}
3)SqlServer数据库厂家:
/**
 模拟SqlServer数据库厂家负责编写JDBC接口的实现类
*/
public class SqlServer  implements JDBC{
	public void getConnection(){
		System.out.println("连接SqlServer数据库成功!");
	}
}
3.2模拟java程序员
import java.util.*;
/**
 Java程序员角色
 不需要关心是哪个牌子的数据库,直接面向接口写代码
*/
public class ConnectProgromer {
	public static void main(String[] args) throws Exception{
		/*
		  1.通过创建类来连接数据库
		*/
		//JDBC jdbc = new MySQL();
		//JDBC jdbc = new SqlServer();
		//jdbc.getConnection();
		
		/*
		  2.使用反射机制连接数据库
		*/
		//Class c = Class.forName("MySQL");
		//JDBC jdbc = (JDBC)c.newInstance();
		//jdbc.getConnection();
		
		/*
		  3.通过资源绑定器获取配置文件中数据库名的方式连数据库
		*/
        //获取配置文件里的数据库名
		ResourceBundle bundle = ResourceBundle.getBundle("jdbc");
		String classname = bundle.getString("classname");//配置文件中数据库的名字
		//通过反射机制实例化JDBC对象
		Class c = Class.forName(classname);
		JDBC jdbc = (JDBC)c.newInstance();
		jdbc.getConnection();
	}
}
编译运行结果:

更改配置文件:

无需重新编译,再次运行:

总结:JDBC就是一套接口。
4.配置驱动到系统环境变量中
此步骤只适用于用记事本开发,idea另有配置方法。
MySQL驱动下载地址:https://dev.mysql.com/downloads/connector/j/
在下拉选项里选择Platform Independent。

我的是windows系统,选择下载zip压缩文件。
下载完后解压缩,里面有一个后缀为.jar的文件,这就是MySQL驱动。

然后右击此电脑-->高级系统设置-->环境变量。
查看环境变量中是否有classpath环境变量,如果没有则新建一个。
然后在变量值一栏写上:
.;jar包的绝对路径

注意:必须在最前面加一个.;
”.“代表你写的程序的当前路径,如果只加了jar包的绝对路径,那么程序运行时,虚拟机就只会去jar包目录下找class文件,不会去你写的代码目录下找class文件。也就是说你写的代码不能运行。

 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号