JDBC

1. 学习目标
在这里插入图片描述

2. JDBC
JABC:java database connectivity java 与数据库的连接
在这里插入图片描述

3. 角色分类
服务器 (db)
接收 sql
执行 sql
返回结果

客户端 (java)
接收数据
组装sql
发送SQL(与数据库建立联系)
分析结果

4. 面向接口编程
1、java 制定标准 ,不同的数据库厂商实现 接口即可。java 中提供的接口 java.sql.*
包下,常用接口如下
在这里插入图片描述
2、oracle 厂商实现接口 (jar)
F:\app\Administrator\product\11.2.0\dbhome_1\jdbc\lib\ojdbc6.jar 视安装路径而

5. jdbc步骤

在这里插入图片描述
核心为拼接SQL、分析结果、操作结果

6. 连接
1.准备工作
引入驱动包
构建路径 build path
测试用户是否正确登录
2. 建立连接
3. 连接字符串
驱动: oracle.jdbc.driver.OracleDriver
url: jdbc:oracle:thin:@db 服务器地址:端口:实例
连接 url->jdbc:oracle:thin:@localhost:1521:XE
用户名: SCOTT
密码: TIGER
4.编写测试类
加载驱动
硬编码: new oracle.jdbc.driver.OracleDriver();
软编码: class.forName(“oracle.jdbc.driver.OracleDriver”)
建立连接

Connection con = DriverManager.getConnection("jdbc:oracle:thin:@locahost:1521:XE","SCO TT ","TIGER");

7. 处理块
静态处理块Statement
Statement 是 Java 执行数据库操作的一个重要接口,用于在已经建立数据库连接的
基础上,向数据库发送要执行的 SQL 语句。Statement 对象,用于执行不带参数的
简单 SQL 语句执行静态 SQL 语句并返回它所生成结果的对象。

  1. 创建 :
    连接.Connection.createStatement()

  2. 执行 :
    ddl -->execute(dd语句) – 通常不会在代码中执行
    dml -->executeUpdate(dml语句)
    select -->executeQuery(select)

  3. 特点 :
    处理 不变的静态的 sql 语句
    优点: 直接查看sql ,方便处理错误
    缺点:性能不高 拼接 sql 麻烦 可能存在 sql 注入

预处理块 PreparedStatement
PreparedStatement 接口继承了 Statement,并与之在两方面有所不同:有人主张,
在 JDBC 应用中,如果你已经是稍有水平开发者,你就应该始终以
PreparedStatement 代替 Statement.也就是说,在任何时候都不要使用 Statement。

由于 PreparedStatement 对象已预编译过,所以其执行速度要快于 Statement对象。
因此,多次执行的 SQL 语句经常创建为 PreparedStatement 对象,以提高效率。

创建:
创建:连接.prepareStatement(sql)

执行:
存在? ,先填充参数再执行
ddl -->execute()
dml -->executeUpdate()
select -->executeQuery()

特点:
处理 不变的静态的 sql 语句 |可变的 sql 语句 带 ? 的 sql
优点:性能高,方便编写sql 不存在sql注入 安全
缺点:不能直接打印sql语句 不方便处理错误

8. 分析
执行完SQL 语句后可能成功也可能失败,如果成功,有数据则我们很大一部分情况
是需要获取查询的结果。数据就是一切

ddl:没有异常就是成功
dml: 结果>0就是成功
select:分析结果集
对于 select 的结果集进行分析,类似于迭代器, 先判断(移动)再获取
next()
getXxx(索引|列名|别名)

9. 释放资源

释放资源的原则是 先打开的后关闭, 则我们的顺序一般为: 结果集->处理块->连接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值