Java DataBase Connectivity
本质是 SUN 公司制定的一套接口
java.sql.*;(这个软件包里面有许多接口)
接口都有调用者和实现者.
为什么要面向接口编程?
解耦合, 降低程序的耦合度, 提升程序的扩展力.
为什么 sun 制定一套 JDBC 接口?
因为每一个数据库的底层实现原理都不一样.
当 sun 公司制定了接口, 各大数据库纷纷响应提供各自数据库对该 JDBC 接口的实现类
实现类 jar 包需要我们去各大数据库官网下载.
这些实现类也叫驱动
所有的数据库驱动都是以 jar 包的形式存在,jar 包中包含许多.class 文件
模拟 JDBC 的本质
//JDBC.java(JDBC 接口)
public interface JDBC
{void getConnection();
}
//MySql.java(MySql 驱动)
public class MySQL implements JDBC{public void getConnection(){System.out.println("连接 MySQL 数据库成功!");
}
}
//Oracle.java(Oracle 驱动)
public class Oracle implements JDBC{public void getConnection(){System.out.println("连接 Oracle 数据库成功!");
}
}
//JavaProgrammer.java(程序员面向接口写的程序)\
import java.util.*;
public class JavaProgrammer
{public static void main(String[] args) throws Exception{//JDBC jdbc =new MySQL();
//JDBC jdbc =new Oracle();
//JDBC jdbc =new SqlServer();
// 创建对象可以通过反射机制.
ResourceBundle bundle = ResourceBundle.getBundle("jdbc");
String className = bundle.getString("className");
Class c = Class.forName(className);
JDBC jdbc = (JDBC)c.newInstance();
jdbc.getConnection();}
}
//jdbc.properties(配置文件)
className=MySql
只用修改配置文件中的内容就可以修改程序所连接不同的数据库
不需要关心底层实现, 面向接口调方法
JDBC 开发前的准备工作, 从官网下载对应的 jar 包, 然后将其配置到环境变量 classpath 中.
.;E:mysql-connector-java-5.1.48mysql-connector-java-5.1.48-bin.jar
前面的.; 不能漏掉
以上的配置是针对文本编辑器的方式开发, 使用 IDEA 工具的时候, 不需要配置以上的环境变量.
IDEA 有自己的配置方式
JDBC 编程六步(需要背会)
- 注册驱动(告诉 Java 程序要连接的是哪个数据库)
- 获取连接(表示 JVM 的进程和数据库进程之间的通道打开了, 这属于进程之间的通信, 重量级的, 使用完毕以后一定要关闭)
- 获取数据库操作对象(专门执行 sq 语句的对象)
- 执行 sql 语句(DQL DML…)
- 处理查询结果集(只有当第四步执行的是 selcet 语句的时候, 才有第五步)
- 释放资源(使用完资源一定要关闭资源. 进程间的通信, 开启后一定要关闭)