JDBC

JDBC

1、JDBC是什么?

Java DataBase Connectivity(Java语言连接数据库)

2.面向接口编程

java 制定标准 ,不同的数据库厂商实现 接口即可。java 中提供的接口 java.sql.* 包下,常用接口如下

接口名称作用
java.sql.Connection连接
java.sql.Statement静态处理块
java.sql.PreparedStatement预处理快
java.sql.ResultSet结果集
java.sql.ResultSetMetaData结果集元信息

3.jbdc步骤

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/*

- JDBC 基本流程:

- 1.加载驱动

- 2.建立连接

- 3.准备数据 sql封装处理块

- 4.发送执行sql,接受结果(结果集|影响行数)

- 5.处理数据

- 6.关闭资源

- 优化: 异常捕获,   数据库的连接信息 ->配置文件中 url,用户名,密码
  */
  public class Demo01 {
  public static void main(String[] args) throws ClassNotFoundException, SQLException {
  	//加载驱动--反射Class对象 	Class.forName("oracle.jdbc.driver.OracleDriver");
  //建立连接
  Connection conn = DriverManager.getConnection(
  		"jdbc:oracle:thin:@localhost:1521:XE",
  		"SCOTT",
  		"TIGER");

//准备sql
String sql = “SELECT DEPTNO,DNAME,LOC FROM DEPT”;
//封装处理块 Statement
Statement state = conn.createStatement();
//发送->得到结果集
ResultSet result = state.executeQuery(sql);
//遍历结果集,获取每一条记录
while(result.next()) {
System.out.println(result.getInt(1)
+"–>"+result.getNString(2)
+"–>"+result.getNString(3));
}
//关闭资源
result.close();
state.close();
conn.close();
}
}


## 4.连接

### 1.准备工作

​	引入驱动包

​	构建路径 build path

​	测试用户是否正确登录

### 2.建立连接

**连接字符串** 

驱动: oracle.jdbc.driver.OracleDriver 

url: jdbc:oracle:thin:@db 服务器地址:端口:实例

连接 url --> jdbc:oracle:thin:@localhost:1521:orcl 

用户名与密码: scott tiger

**编写测试类**

加载驱动 

a)、硬编码: new oracle.jdbc.driver.OracleDriver(); 

b)、软编码: class.forName("oracle.jdbc.driver.OracleDriver")

**建立连接** 

```java
Connection con =DriverManager.getConnection("jdbc:oracle:thin:@locahost:1521:orcl","scott","tiger")

5.处理块

1.静态处理块 Statement

​ Statement 是 Java 执行数据库操作的一个重要接口,用于在已经建立数据库连 接的基础上,向数据库发送要执行的 SQL 语句。Statement 对象,用于执行不带参数 的简单 SQL 语句。

​ 执行静态 SQL 语句并返回它所生成结果的对象。

创建 : 连接.Connection.createStatement()

执行

ddl -->execute(dd语句) – 通常不会在代码中执行

dml -->executeUpdate(dml语句)

select -->executeQuery(select)

**特点:**处理 不变的静态的 sql 语句

优点: 直接查看sql ,方便处理错误

缺点:性能不高 拼接 sql 麻烦 可能存在 sql 注入

2.预处理快 PreoaredStatement

PreparedStatement 接口继承了 Statement,并与之在两方面有所不同:有人

主张,在 JDBC 应用中,如果你已经是稍有水平开发者,你就应该始终以

PreparedStatement 代替 Statement.也就是说,在任何时候都不要使用 Statement。

由于 PreparedStatement 对象已预编译过,所以其执行速度要快于 Statement

对象。因此,多次执行的 SQL 语句经常创建为 PreparedStatement 对象,以提高效率。

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

执行

存在**?** ,先填充参数再执行

ddl -->execute()

dml -->executeUpdate()

select -->executeQuery()

特点 :处理 不变的静态的 sql 语句 |可变的 sql 语句 带 ? 的 sql

优点:性能高,方便编写sql 不存在sql注入 安全

缺点:不能直接打印sql语句 不方便处理错误

6.分析

​ 执行完 SQL 语句后可能成功也可能失败,如果成功,有数据则我们很大一部分情况是

​ 需要获取查询的结果。数据就是一切

​ ddl:没有异常就是成功

​ dml: 结果>0就是成功

​ select:分析结果集

​ 对于 select 的结果集进行分析,类似于迭代器, 先判断(移动)再获取

​ next()

​ getXxx(索引|列名|别名)

7.释放资源

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值