Java DataBase Connectivity(java语言连接数据库)
What
JDBC是sun公司指定的一套接口(interface)
java.sql.*; (这个软件包下有很多接口
为什么会制定这套接口?
因为每个数据库的底层实现原理都不同
Oracle数据库有自己的原理
MySQL数据库也有自己的原理
MS SQLServer数据库也有自己的原理
……
每个数据库产品都有自己独特的实现原理(涉及各厂家的数据库底层)
驱动:实现类被称为驱动
【1】new对象的方式来创建对象——耦合度高
public class JavaProgrammer
{
public static void main(String[] args){
//JDBC jdbc = new SqlServer();
//JDBC jdbc = new Oracle();
JDBC jdbc = new MySQL();
//面向接口调用方法
jdbc.getConnection();
}
}
【2】通过反射的方式来创建对象——耦合度降低
Class c = Class.forName("MySQL");
JDBC jdbc = (JDBC)c.newInstance();
【3】再度优化,来创建对象——扩展性更好
import java util.*;
public class JavaPromgrammer{
public static void main(String[] args) throws Exception{
ResourceBundle bundle = ResourceBundle.getBundle("jdbc");
String className = bundle.getString("className");
Class c = Class.forName(className);
JDBC jdbc = (JDBC)c.newInstance();
jdbc.getConnection();
}
}
接口都有调用者和实现者
面向接口调用、面向接口写实现类,这些都属于面向接口编程。
Why
解耦合
多态机制就是典型的:面向抽象编程(不面向具体编程)
父类型的引用指向子类型的对象。
how(JDBC编程六步)
1、注册驱动
作用:告诉Java程序,即将要连接的是哪个品牌的数据库
2、获取连接
表示JVM的进程和数据库进程之间的通道打开了,属于进程之间的通信,是重量级的,使用完之后一定要关闭通道
3、获取数据库操作对象
专门执行sql语句的对象
4、执行SQL语句
主要执行DQL(Query),DML……
5、处理查询结果集
只有当4执行select语句时,才会有5处理查询结果集,如果第四步不是select,直接跳过第五步,执行第六步
6、释放资源
使用完之后一定要关闭资源,java和数据库属于进程间的通信,开启之后一定要关闭