JDBC介绍

JDBC介绍,第1张

目录

一、JDBC介绍

二、JDBC驱动

 三、JDBC经典用法

四、JDBC编程步骤

1.加载驱动

2.创建连接

3.准备语句

4.执行库 *** 作

5.处理结果

6.收回资源


一、JDBC介绍

JDBC来历:

  • ODBC:Open DataBase Connectivity、开放数据库连接
  • ODBC允许应用程序可以通过一组通用的API访问不同的数据库管理系统
  • ODBC应用可以在不同的数据库之间切换
  • JDBC是模仿了ODBC的设计

JDBC概念:

JDBC(Java DataBase Connectivity)是Java和数据库之间的一个桥梁,是一个规范而不是一个实现,能够执行SQL语句。它由一组用Java语言编写的类和接口组成。各种不同类型的数据库都有相应的实现。

  • Java运行平台的核心类库中的一部分
  • 提供了访问裁据库的API
  • Java透接救据年的规范〔标准)
  • 一些主和接口组成

JDBC作用:

  • 规避数据库的不同,为程序开发人员访问敷据库提供统一的编程接口,即为API。

JDBC功能:

  • 通过这些类和接口可以实现对裁据库中表记录的 *** 作:插入、删除、修改、查询。

二、JDBC驱动

JDBC驱动类型1

JDBC-ODBC桥:

  • 最早实现的JDBC驱动程序,主要目的是为了快速推广JDBC,可以方便的用于测试,不太适合产品的开发。
  • 将JDBCAP1映射到ODBCAP1,不是多线程的,不适合在要求并行访问数据库的情况下使用。-目前,不再建议使用JDBC-ODBC桥。

JDBC驱动类型2

JAVA程序和本地代码:

  • 由部分Java程序和部分本地代码组成一用于与数据库的客户端AP1进行通信
  • 在使用这种驱动程序之前,不仅需要安装Java类库,还需要安装一些与平台相关的代码

 JDBC驱动类型3

纯Java类库:

  • 使用一种与具体数据辟无关的协议将数据库请求发送给服务器构件(中间件服务器)
  • 然后构件再将数据库请求翻译成特定的数据库协议
  • 这种驱动支持三层结构的JDBC访问方式
  • 主要用于Applet阶段,通过Applet访问数据辟

JDBC驱动类型4

纯Java类库:

  • 直接与数据库实例交互
  • 智能的,它知道数据库使用的底层协议
  • 这种驱动是目前最流行的JDBC驱动


 三、JDBC经典用法

 1.JDBC常用的接口和类

  • 支持JDBCAPI的类和主要接口封装在
  • java.sql包
  • javax.sql包

2.主要的类和接口

  • java.sql.Driver接口
  • java.sql.DriverManager类
  • java.sql.Connection接口
  • java.sql.Statement接口
  • java.sql.ResultSet接口
  • java.sql.sQLException类

Driver接口

  • 每个驱动程序类必须实现的接口。
  • DriverManager会试着加载尽可能多的它可以找到的驱动程序
  • 对于任何给定连接请求,它会让每个驱动程序依次试着连接到目标URL。

DriverManager类

用于管理JDBC驱动的服务类

主要功能

  • 获取Connection对象,用来获得url对应数据库的连接
  • public static syncronized ConnectiongetConnection(Stringurl.String user,String password) throws sQLException
  • url-jdbc:subprotocol:subname形式的数据辟url
  • user-数据辟用户,连接是为该用户建立的
  • password-用户的密码

Connection接口

数据库连接对象

1.每个Connection代表一个物理连接会话

2.要想访问数据库,必须先获得数据库连接

3.这个接口中的常用方法:

  • Statement createStatement( )throws sQLException
  • 创建一个Staternent 对象
  • 将SQL语句发送到裁据库

connection接口的其它方法

1.PreparedStatement prepareStatement(String sql)throws SQLException

  • 创建一个PreparedStatement对象
  • 可将参数化的SQL语句发送到数据库进行预编译

2.CallableStatement prepareCall(String sql) throwsSQLException

  • 创建一个CallableStatement对象
  • 调用救据库存储过程

三种方法之间的关系

  • 三个方法都是返回用于执行SQL语句的Statement对象
  • -PreparedStatement、CallableStatement是Statement的子接口
  • 一只有获得了Statement之后才可以执行SQL语句

Statement接口

1.执行SQL语句的接口

  • DDL语句
  • DCL语句
  • DML语句
  • SQL查询
  • 执行SQL查询,返回查询到的结果集

2.这个接口中的常用方法:

  • ResultSet exeauteQuery(String sql) throwsSQLException
  • 执行给定的SQL查询语甸
  • 返回单个ResultSet对象·只能用于查询

Statement接口其它方法

1.int executeUpdate(String sql) throws sQLException

  • 执行DML语句
  • 返回受影响的行数一执行DDL
  • 执行DDL时返回0

2.boolean execute(String sql) throws SQLExceptior一执行任何SQL语句

  • 如果执行后第一个结果为ResultSet对象,返回true
  • 如果返回执行后第一个结果为受影响的行数或没有任何结果,返回false

PreparedStatement接口

1.预编译的SQL语句的对象

  • 允许数据库预编译SQL语句(通常这些SQL语6带有参数)
  • 以后每次只改变SQL命令的参数,避免数据库每次都需要编译SQL语句,因此性能更好
  • 使用PreparedStatement挑行SQL语句,只需为预编译的SQL语句传入参数即可
  • void setXXX(int paramlndex,XXX value)
  • 据传入的参数类型不同,需要使用不同的方法
  • 传入的值极据索引传给SQL语句中指定位置的参裁

PreparedStatement接口方法

  • execute ( )
  • executeQuery ( )
  • executeUpdate ( )
  • 一这三个方法无须接收SQL字符串,因为已经预编译了SQL命令

ResultSet接口

1.结果集对象

  • 包含访问查询结果的方法
  • 可以通过列索引或列名获得列数据

2.常用方法

  • void close():释放ResultSet对象
  • -boolean absolute(int row):将结果集的记录指针移动到第row行,如知果row是负数.刘移动到末尾的绝对行位置

ResultSet接口其它方法

1.void beforeFirst()

  • 将ResultSet的记录指针定位到首行之前,这是ResultSet结果集记录指针的初始状态。

2.boolean first()

  • 将ResultSet的记录指针定位到首行。如果移动后的记录指针指向一条有效记录,则该方法返回true。

3.boolean previous()

  • 将ResultSet的记录指针定位到上一行。如果移动后的记录指针指向一条有效记录,则该方法返true。

4.boolean next()

  • 将ResultSet的记录指针定位到下一行。如果移动后的记录指针指向一条有效记录,则该方法返回true

5.boolean last()

  • 将ResultSet的记录指针定位到末行。如果移动后的记录指针指向一条有效记录,则该方法返回true。

6.void afterlast()

  • 将ResultSet的记录指针定位到末行之后。
四、JDBC编程步骤 1.加载驱动

1.使用Class类下的静态方法forName来加载驱动

2.格式如下面的代码:

  • Class.forName(driverClass);
  • driverClass为数据库驱动类所对应的字符串例如

3.加载MySQL驱动

  • Class.forName(com.mysql.jdbc.Driver )

4.加载jdbc-odbc桥接器驱动

  • Class.forNarne("sun.jdbx.odb.JdbxOdbxDriver")
2.创建连接

1.通过DriverManager获取数据库连接

2.格式如下:

  • DriverManager.getConnection(Stringur1,String user,String pass)
  • 上面的三个参数分别指的是
  • 数据库的url
  • 登录数据辟的用户名
  • 用户密码(通常由DBA分配)
  • 该用户还应该具有相应的权限,才能撬行相应的SQL语句
3.准备语句

1.即通过Connection对象创建Statement对象

2.方法有三个

  • createStatement0:创建基本的Statement对象。
  • prepareStatement(String sql):根据传入的SQL语句创建预编译的Statement对象。
  • prepareCall(Stringsql):根据传入的SQL语句创建CallableStatement对象。
4.执行库 *** 作

1.使用Statement对象执行SQL语句

2.所有Statement对象都有以下三个方法:

  • execute():执行任何SQL语甸,通用但不好用。
  • executeUpdate0:执行DML和DDL语句;执行DML语句返回受SQL语句影响的行数;执行DDL语句返回0。
  • executeQuery0:只能执行查询语句;返回代表查询结果的ResultSet对象
5.处理结果

执行的SQL语句是查询语句:

  • 将返回一个ResultSet对象来取出查询结果
  • ResultSet对象提供了两类方法:
  •  next0. previous0._first0.last0.beforeFirst0.afterLast,absolute0等:用于移动记录指针的方法【行上的移动和指定】
  • getXXX(参数):获取记录指针指向行,特定列的值【某行列上的移动和指定;可以使眉到索引作为参教【性能划】;可以使用列名作为参敷【可读性强】
  • ResultSet对象的实质是一个查询结果集,在逻辑结构上非常类似于一个表
6.收回资源

收数据库资源

  • 关闭ResultSet
  • 关闭Statement
  • 关闭Connection

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/langs/942259.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-18
下一篇 2022-05-18

发表评论

登录后才能评论

评论列表(0条)

保存