1.1 JDBC是什么
Java DataBase Connectivity (Java语言来连接数据库)
1.2 JDBC的本质什么
JDBC时SUN公司制定的一套接口(interface) java.sql*;(这个包下有很多的接口)
接口都有调用者和实现者。
面向接口调用、面向接口写实现类,这都属于面向接口的编程。
1.3 为什么要面型接口编程?
解耦合 :降低程序的耦合度,提高程序的扩展力。
多态机制就是非常典型的 :面向抽象编程。(不要面向具体编程)
建议 :
Animal a = new Cat(); Animal b = new Dog(); 复制代码
喂养方法 :
public void feed(Animal d){ // 面向父类编程 } 复制代码
// 不建议
Dog a = new Dog(); Cat c = new Cat(); 复制代码
1.4 为什么SUN公司制定了一套JDBC接口呢
1.5 JDBC的本质是什么?
一套接口
JDBC编程六步 (需要背)
- 第一步 :注册驱动(作用:告诉Java程序,即将要连接哪个数据库)
- 第二步 :获取连接(表示JVM的进程和数据库进程之间的通道打开了,这属于进程之间的通信,重量级的。使用完之后一定要关闭)
- 第三步 :获取数据库操作对象(专门执行sql语句的对象)
- 第四步 :执行SQL语句(DQL、DML...)
- 第五步 :处理查询结果集(只要当第四步执行的是select语句的时候,才有这五步处理查询结果集)
- 第六步 :释放资源 (使用完资源之后一定要进行关闭资源。Java和数据库属于进程间的通信,开启之后一定要进行关闭)
url: 统一资源定位符(网络中某个资源的绝对路径)
URL包括哪几个部分 :
- 协议
- IP
- PORT
- 资源名
http://182.61.200.7:80/index.html
http:// 通信协议 182.61.200.7 服务器IP地址 80 服务器上软件的端口 index.html 服务器上某个资源名
连接mysql数据库的url jdbc:mysql://192.168.1.106:3306/bjpowernode
连接oracle数据库的url jdbc:oracle:thin:@localhost:1521:orcl //orcl为数据库的SID jdbc:mysql:// 协议 192.168.1.106 本机的IP地址 (127.0.0.1或者localhost) 3306 数据库的端口号 bjpowernode 具体的数据库实例名
说明 : localhost和127.0.0.1都是本机的IP地址
重点 :使用DQL语句处理查询集的原理
注意 :光标刚开始时指向0的位置,没有数据,而next判断的则是数据库的下一行还有没有数据。
数据库连接池(C3P0、Druid)
概念: 其实就是一个容器(集合),存放数据库连接的容器。当系统初始化后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。
优点:
- 节约资源
- 用户访问高效
实现:
标准接口 : DataSorce javax.sql包下
- 方法:
- 获取连接:getConnection()
- 归还方法: Connection.close()。 如果连接对象Connection是从连接池中获取的,那么调用Connection.close()方法,则不会关闭连接。而是归还连接。
- 一般我们不去实现这个数据库连接池,由数据库厂商进行实现。
- C3P0:数据库连接池技术
- Druid:数据库连接技术,由阿里巴巴提供
C3P0连接池
实现步骤:
- 导入jar包(两个) :c3p0-0.9.5.2.jar mchange-commons-java-0.2.12.jar。不要导入忘记导入数据库驱动jar包。
- 定义配置文件:
- 名称:c3p0.properties 或者 c3p0-config.xml。
- 路径:直接将文件存储到src目录下。
- 创建核心对象:数据库连接池对象(CombopooledDataSourc e)
- 获取连接:getConnection()