JDBC概述

一、定义

JDBC:Java Database Connectivity,是一套面向对象的应用程序接口,指定了统一的访问关系型数据库的标准接口,是一种底层的API,主要有java.sql.*和javax.sql.*包中的一些类和接口组成。

二、工作原理

在这里插入图片描述

三、工作流程

在这里插入图片描述

四、常用的接口和类

在JDBC编程中对数据库的操作均使用JDK自带的API统一处理,通常与特定的数据库的驱动类是完全解耦的。所以掌握JAVA JDBC API(位于java.sql包下)即可掌握Java数据库编程 。
1、DriverManager类:用来管理数据库中的所有驱动程序,它是JDBC的管理者,作用于用户和驱动程序之间,跟踪可用的驱动程序,并在数据库的驱动程序之间建立连接

getConnection(String url , String user , String
password):指定3个参数的入口(依次是数据库的url、用户名、密码)来获取与数据库的连接;
setLoginTimeout():获取驱动程序试图登录到数据库时可以等待的最长时间(s); println(String
message):将一条消息打印到当前JDBC日志流中;

2、Connection接口:实现类由数据库提供,获取Connection对象通常有两种方式:一种是DriverManager的静态方法获取,一种是通过DataSource(数据源)对象获取。

  1. createStatement():创建Statement对象;
  2. prepareStatement():创建预处理对象prepareStatement();
  3. close():立即释放此Connection对象的数据库和JDBC资源,而不是等待它们被自动释放;

3、Statement接口:用于在已经建立连接的基础上向数据库发送SQL语句;分为三种Statement对象:Statement、PrepareStatement、CallableStatement。
Statement对象用于执行不带参数的简单的SQL语句;

  1. execute(String sql):执行静态的SELECT语句,该语句可能返回多个结果值;
  2. ecuteQuery(String sql):执行给定的SQL语句,该语句返回单个ResultSet对象:
  3. clearBatch():清空此Statement对象的当前SQL命令列表;
  4. executeBatch():将一批命令提交给数据库来执行,如果全部执行成功,则返回更新计数组成的数组。数组元素的排序与SQL语句的添加顺序对应;
  5. close():释放Statement实例占用的数据库和JDBC资源;

4、PreparaStatement接口:继承了Statement,用于执行动态的SQL语句;
特点:

  1. 参数化查询;
  2. 占位符:?下标从1开始;
  3. 占位符不能使用多值;
  4. SQL预编译 ;
  5. 性能比Statement高 ;
  6. 能阻止常见SQL注入攻击;

常用方法

  1. setXXX(int index , XXX k ):将指定位置的参数设置为对应类型的值;
  2. executeQuery():在此PrepareStatement对象中执行SQL查询,并返回该查询生成 的ResultSet对象
  3. executeUpdate():执行前面包含的参数的动态INSERT、UPDATE或者DELETE语句

5、ResultSet接口:类似于临时表,用来暂时存放数据库查询操作多获得·的结果集,里面的数据一行一行排列,每行有多个字段,并且有一个记录指针。

  1. getXXX(“ 列名”):以XXX类型获取此ResultSet对象的当前行的指定列值
  2. next():将指针向下移一行;

CallableStatement继承了PrepareStatement,用于执行对数据库的存储过程的调用;

五、JDBC优势
  1. Java语言访问数据库操作完全面向抽象接口编程
  2. 开发数据库应用不用限定在特定数据库厂商的API
  3. 程序的可移植性大大增强
六、演练实例
import java.sql.*;
import java.text.DateFormat;
import  java.text.SimpleDateFormat;
import java
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值