JDBC的初步认识

一、JDBC是什么?

1、介绍JDBC之前要谈一下ODBC(Open DataBase Connectivity)一开放数据库连接
ODBC允许应用程序可以通过一组通用的API访问不同的数据库管理系统,ODBC应用可以在不同的数据库之问切换。JDBC是模仿了ODBC的设计。
2、JDBC概念:全称:Java DataBase Connectivity,是Java运行平台的核心类库中的一部分一提供了访问救据库的APl,Java连接救拯年的规范(标准),一些类和接口组成。
3、JDBC作用:一规避救据库的不同,为程序开发人员访问裁据库提供统一的编程接口,即为APl
4、JDBC功能:通过这些类和接口可以实现对救据库中表记录的操作,插入,删除,修改,查询。
5、JDBC驱动类型:
(1)JDBC-ODBC,不适合并行访问数据库的情况下使用。

0cacfef82d064f618cc84b99d5767329.png
(2)java程序和本地代码:
由部分Java程序和部分本地代码组成一用于与数据库的客户端API进行通信

1318fa853dcc454fbce9937cb2c8ff87.png(3)纯java类库:使用一种与具体数据库无关的协议将数据库请求发送给服务器构件(中间件服务器)然后构件再将数据库请求翻译成特定的数据库协议这种驱动支持三层结构的JDBC访问方式ccb025eed5ad4b12a97edef2a9431154.png(4)纯java类库:直接与数据库实例交互智能的,它知道数据库使用的底层协议这种驱动是目前最流行的JDBC驱动。

71237e141ba84d58bbf69607b61695f0.png

二、JDBC的用法

类和接口

JDBC常用的接口和类
支持JDBCAPI的类和主要接口封装在java.sql包javax.sql包。
主要的类和接口- java.sql.Driver接口, java.sql.DriverManager类,java.sql.Connection接口,java.sql.Statement接口,java.sql.ResultSet接口, java.sql.SQLException类。
(1)driver接口
每个驱动程序类必须实现的接口。
DriverManager会试着加载尽可能多的它可以找到的驱动程序
对于任何给定连接请求,它会让每个驱动程序依次试着连接到目标URL。
(2)Connection接口
数据库连接对象
每个Connection代表一个物理连接会话一要想访问数据库,必须先获得数据库连接一这个接 口中的常用方法:

  •  Statement createStatement()throws SQLException
  • -创建一个Statement对象
  • -将SQL语句发送到数据库
  • PreparedStatementprepareStatement(Stringsq!) throws SQLException
  • -创建一个PreparedStatement对象
  • -可将参数化的SQL语句发送到数据库进行预编
  • CallableStatement prepareCall(Stringsql)throws SQLException
  • -创建一个CallableStatement对象
  • -调用数据库存储过程

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

(3)DriverManager类
用于管理JDBC驱动的服务类主要功能
一获取Connection对象,用来获得url对应数据库的连接

  •  public static syndhronized Connection getConnection(Stringurl,
  • Stringuser,Stringpassword)throws SQLException、
  • . url- jdbc:subprotocol:subname形式的数据辟url ,

user-数据辟用户,连接是为该用户建立的,
password-用户的密码,

(4)Statement接口
执行SQL语句的接口
,DDL语句,DCL语句- DML语句- SQL查询
· S执行SQL查询,返回查为到的结果集这个接口中的常用方法:

  • ResultSet executeQuery(Stringsq!)throws SQLException
  • 执行给定的SQL查询语句
  • 返回单个ResultSet对象
  • 只能用于查询    
  • int executeUpdate(String sql)throws SQLException
  • 执行DML语句
    ---返回受影响的行数
  • 执行DDL
    ---执行DDL时返回0
  • boolean execute(String sql)throws SQLException
  • 执行任何SQL语句
  • 如果执行后第一个结果为ResultSet对象---返回true
  • 如果返回执行后第一个结果为受影响的行数或没有任何结果 ---返回false

(5)PreparedStatement接口
预编译的SQL语句的对象
一允许数据库预编译SQL语句(通常这些SQL语句带有参数)
一以后每次只改变SQL命令的参数,避免数据库每次都需要编译SQL语句,因此性能更好
一使用PreparedStatement挑行SQL语句,只需为预编译的SQL语句传入参数即可
. void setXXX(int paramlndex,xXX value)
一极据传入的参数类型不同,需要使用不同的方法一传入的值极据索引传给SQL语句中指定位置的参。
(6)ResultSet接口
结果集对象:
包含访问查询结果的方法
可以通过列索引或到名获得列数据常用方法

  • void close0
  • 释放ResultSet对象
  • boolean absolute(int row).
  • 将结果集的记录指针移动到第row行,如果row是负数,对移动到末尾的绝对行位置
  • 如,调用方法absolute(-1)将光标置于最后一行

三、JDBC编程步骤

加载驱动,创建连接,准备语句,执行库操作,处理结果,回收资源

1、加载驱动
使用Class类下的静态方法forName来加载驱动格式如下面的代码:

  • Class.forName(driverClass);
  • driverClass为数据库驱动类所对应的字符串例如
  • 加载MySQL驱动
  • Class.forNarne(com.mysql.jdb.Driver );
  • 加载jdbc-odbc桥接器驱动
  • Class.forNarne(“sun.jdbx.odbx.JdbxOdbxDriver”);

2、创建连接
通过DriverManager获取数据库连接格式如下:

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

3、准备语句
即通过Connection对象创建Statement对象方法有三个

  • createStatement0
  • 创建基本的Statement对象。
  • prepareStatement(String sql)
  • 根据传入的SQL语句创建预编译的Statement对象。
  • prepareCall(String sql)
  • 根据传入的SQL语句创建CallableStatement对象。

4、执行库操作
使用Statement对象执行SQL语句
所有Statement对象都有以下三个方法

  • execute0
  • 执行任何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

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值