JDBC
Java Database Connectivity / JDBC
1.本质
sun公司制定的一套接口(interface)
接口都有调用者跟实现者
面向接口调用,面向接口写实现类,面向接口编程
1.1 面向接口编程为什么要面向接口编程?
解耦合,降低程序的耦合度,提高程序的拓展力
多态机制就是非常典型的 面向抽象编程
接口是完全抽象编程,可以让程序更灵活
import java.sql.*
1.2 JDBC接口 是 一套interface
厂家将操作通道通过实现java的JDBC 的接口的方法写入,然后使用者直接调用厂家实现的java包既可以使用
厂家实现的JDBC称为驱动,MySQL驱动,Oracle驱动,所有的驱动都是jar包
下载数据库需要去厂家下载
2.模拟JDBC本质
数据库厂家是JDBC的实现者.我们是JDBC的调用者,SUN公司是接口定制者
//SUN公司提供接口
public interface JDBC {
void getConnection();
}
//MySQL提供的接口
public class MySQL implements JDBC{
@Override
public void getConnection() {
System.out.println("连接MySQL数据库成功");
}
}
//只需要面向接口编程,调用MySQL驱动的.class实施具体,然后直接使用
//SUN公司提供方法就可以
public class User {
public static void main(String[] args) {
MySQL mySQL = new MySQL();
mySQL.getConnection();
}
}
2.1 源代码:HBase里的JDBC理解
去HBase看源代码
过程
第一步:注册驱动
第二步:获取连接
第三步:获取数据库操作对象(专门执行sql语句的对象)
第四步:执行sql语句(DDL,DML)
第五步:处理查询的结果集
第六步:释放资源
使用完资源之后一定要关闭资源,java和数据库数据进程间的通信,开启之后一定要关闭
注册驱动-获取连接-获得操作对象-执行语句-处理结果-释放资源
3.注册驱动测试连接
3.1百度讲URL
URL
jdbc:mysql:协议
什么是协议,有什么用
是什么通讯协议
是通信之前就提前定好的数据传送格式
数据包具体怎么传数据,格式提前订好
127.0.0.1 IP地址
3306 端口号
jdbc 数据库的实例名
localhost 与 127.0.0.1 都是本地IP
3.2 第二种类加载的方法
本身具有类加载的动作,
注册驱动的第二种方式,字符串可以写在配置文件中
4.DML与DDL的操作
DML返回int
提交方式==executeupdate==
查询返回==resultset==(结果集合)
提交方法==executequery==
boolean flag = resultset.next();==>返回ture
resultset的迭代器集合
5.回顾
connection 数据库连接对象
statement,获得数据库操作对象
可以执行sql语句
executeUpdate int (影响条数)
executeQuery (resultset,处理查询结果集)
6.行级锁
for update 悲观锁 锁住
乐观锁多线程并发都可以进行修改,都可以执行,只不过有版本号