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文件。也就是说你写的代码不能运行。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TSCCG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值