JDBC是什么?
java database Connectivity: JDBC是java应用程序和数据库之间信任桥梁,是Java应用程序访问数据库的通道。
1.JDBC定义了一套标准接口,即访问数据库的通用API,不同的数据库厂商根据各自数据库的特点实现这些接口。
2.JDBC接口的实现类称之为数据库驱动,由各个数据库厂商提供,使用JDBC必须导入这个驱动!
一定要清楚驱动是什么!
-DriverManager 驱动管理
-Connection
-DatebaseMetaData 连接接口
-Statement
-PreparedStatement
-CallableStatement 语句对象接口
-ResultSet
-ResultSetMetaData 结果集接口
JDBC工作原理
-JDBC定义接口
-数据库厂商实现接口
-程序员调用接口,实际调用的是底层数据库厂商的实现部分
JDBC工作过程:
- 加载驱动,建立连接
- 创建语句对象
- 执行SQL语句
- 处理结果集
- 关闭连接
JDBC使用步骤:
1.导入JDBC驱动jar
2.注册JDBC驱动
- 参数:“驱动程序类名”
-Class.forName("驱动程序类名")
3.获得Connection对象
-需要3个参数:url, username , password
-连接到数据库
4.创建Statement(语句)对象
-conn.getStatement() 方法创建对象
-用于执行SQL语句
-execute(DDL) 执行任何SQL,常用执行DDL,DCL
-executeUpdate(DML) 执行DML语句,如:insert update delete
-executeQuery(DQL) 执行DQL语句, 如:select
5.处理SQL执行结果:
- execute(DDL) 如果没有异常则成功
- executeUpdate(DML) 返回数字,表示更新“行”数量,抛出异常则失败
- executeQuery(DQL) 返回ResultSet(结果集)对象,代表2维查询结果,使用for循环遍历处理,如果查询失败抛出异常!
6.关闭数据连接!
- conn.close();
Driver接口及驱动类加载
-驱动类加载方式(Oracle):
Class.forName("oracle.jdbc.driver.OracleDriver");
红色部分装载驱动类,驱动类通过static块实现在DriverManager中的“自动注册”。
类加载时会抛出异常,因为在写加载路径时可能会出错,必须在此处声明异常throws Exception。
Connection接口
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
String username = "scott";
String passward = "123456";
Connection conn = DriverManager.getConnection(url, username, passward);
根据URL连接参数找到与之匹配的Driver对象,调用其方法获取连接。
NOTE: Connection 只是接口!真正实现是由数据库厂商提供的驱动包完成的。
在maven环境中导入ojdbc的jar包,在阿里云的环境中是pom文件,无法导入直接使用,因为是收费版本的。
那么我们可以直接本地下载ojdbc的包,通过build path导入使用!
Statement接口
//创建"Statement语句"对象
Statement stmt = conn.createStatement();
---- boolean flag = stmt.execute(sql); //处理DDL语句(增删改表结构)
stmt ---- ResultSet rs = stmt.executeQuery(sql); //处理DQL语句(select)
---- int flag = stmt.executeUpdate(sql); //处理DML语句 (增删改表数据)
以下是初次使用案例:
Statement处理DQL语句,在此处应用了游标的概念:
DQL语句返回的结果集以ResultSet表示,而这个数据集当中,会默认有一个游标出现在表数据的首航(例如 id,name这行),res.next() 方法是用来判断下一行是否有数据存在。