前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布

​jdbc

原创
作者头像
ruochen
修改2021-11-20 15:58:07
1.4K0
修改2021-11-20 15:58:07
举报
文章被收录于专栏:若尘的技术专栏

文章目录

  • <ul><li>- - - - -

一,什么是JDBC

JDBC(Java DataBase Connectivity)就是Java数据库连接,说白了就是用Java语言来操作数据库。原来我们操作数据库是在控制台使用SQL语句来操作数据库,JDBC是用Java语言向数据库发送SQL语句。

<img src="https://img-blog.csdnimg.cn/20200602130240826.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNjIzNDQ3,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述">

二,JDBC的原理

早期SUN公司的天才们想编写一套可以连接天下所有数据库的API,但是当他们刚刚开始时就发现这是不可完成的任务,因为各个厂商的数据库服务器差异太大了。后来SUN开始与数据库厂商们讨论,最终得出的结论是,由SUN提供一套访问数据库的规范(就是一组接口),并提供连接数据库的协议标准,然后各个数据库厂商会遵循SUN的规范提供一套访问自己公司的数据库服务器的API出现。SUN提供的规范命名为JDBC,而各个厂商提供的,遵循了JDBC规范的,可以访问自己数据库的API被称之为驱动!

<img src="https://img-blog.csdnimg.cn/20200602130310559.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNjIzNDQ3,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述">

JDBC是接口,而JDBC驱动才是接口的实现,没有驱动无法完成数据库连接!每个数据库厂商都有自己的驱动,用来连接自己公司的数据库。

当然还有第三方公司专门为某一数据库提供驱动,这样的驱动往往不是开源免费的!

三,程序员,JDBC,JDBC驱动的关系及说明

<mark>JDBC API</mark>

提供者:Sun公司

内容:供程序员调用的接口与类,集成在java.sql和javax.sql包中,如

1.DriverManager类 作用:管理各种不同的JDBC驱动

2.Connection接口

3.Statement接口

4.ResultSet接口

<mark>JDBC 驱动</mark>

提供者:数据库厂商

作用:负责连接各种不同的数据库

<mark>Java程序员</mark>

代码语言:txt
复制
     JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。

<mark>三方关系</mark>

SUN公司是规范制定者,制定了规范JDBC(连接数据库规范)

数据库厂商微软、甲骨文等分别提供实现JDBC接口的驱动jar包

程序员学习JDBC规范来应用这些jar包里的类。

<img src="https://img-blog.csdnimg.cn/2020060213044955.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNjIzNDQ3,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述">

四,JDBC的总结

简单地说,JDBC 可做三件事:与数据库建立连接、发送 操作数据库的语句并处理结果。

<img src="https://img-blog.csdnimg.cn/20200602130504905.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNjIzNDQ3,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述"> DriverManager :依据数据库的不同,管理JDBC驱动

Connection :负责连接数据库并担任传送数据的任务

Statement :由 Connection 产生、负责发送执行SQL语句

ResultSet:负责保存Statement执行后所产生的查询结果

五,JDBC连接数据的步骤

1:加载一个Driver驱动

2:创建数据库连接(Connection)

3 : 创建SQL命令发送器Statement

4:通过Statement发送SQL命令并得到结果

5:处理SQL结果(select语句)

6:关闭数据库资源

ResultSet

Statement

Connection。

六,JDBC连接数据的详细步骤

<mark>1.加载驱动</mark>

加载JDBC驱动是通过调用方法java.lang.Class.forName(),下面列出常用的几种数据库驱动程序加载语句的形式 :

Class.forName(“oracle.JDBC.driver.OracleDriver”);//使用Oracle的JDBC驱动程序

Class.forName(“com.microsoft.JDBC.sqlserver.SQLServerDriver”);//使用SQL Server的JDBC驱动程序

Class.forName(“com.ibm.db2.JDBC.app.DB2Driver”);//使用DB2的JDBC驱动程序

Class.forName(“com.mysql.JDBC.Driver”);//使用MySql的JDBC驱动程序

<mark>2.创建数据库连接</mark>

与数据库建立连接的方法是调用DriverManager.getConnection(String url, String user, String password )方法

Connection conn=null;

String url=“jdbc:oracle:thin:@localhost:1521:orcl”;

String user=“scott";

String password=“tiger";

conn = DriverManager.getConnection(url, user, password);

<mark>3.创建Statement并发送命令</mark>

Statement对象用于将 SQL 语句发送到数据库中,或者理解为执行sql语句

有三种 Statement对象:

Statement:用于执行不带参数的简单SQL语句;

PreparedStatement(从 Statement 继承):用于执行带或不带参数的预编译SQL语句;

CallableStatement(从PreparedStatement 继承):用于执行数据库存储过程的调用。 <img src="https://img-blog.csdnimg.cn/20200602130643599.png" alt="在这里插入图片描述">

<mark>4.处理ResultSet结果</mark>

ResultSet对象是executeQuery()方法的返回值,它被称为结果集,它代表符合SQL语句条件的所有行,并且它通过一套getXXX方法(这些get方法可以访问当前行中的不同列)提供了对这些行中数据的访问。

ResultSet里的数据一行一行排列,每行有多个字段,且有一个记录指针,指针所指的数据行叫做当前数据行,我们只能来操作当前的数据行。我们如果想要取得某一条记录,就要使用ResultSet的next()方法 ,如果我们想要得到ResultSet里的所有记录,就应该使用while循环。

ResultSet对象自动维护指向当前数据行的游标。每调用一次next()方法,游标向下移动一行。

初始状态下记录指针指向第一条记录的前面,通过next()方法指向第一条记录。循环完毕后指向最后一条记录的后面。

<img src="https://img-blog.csdnimg.cn/20200602130700844.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNjIzNDQ3,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述">

<mark>5.关闭数据库资源</mark>

作为一种好的编程风格,应在不需要Statement对象和Connection对象时显式地关闭它们。关闭Statement对象和Connection对象的语法形式为:

public void close() throws SQLException

用户不必关闭ResultSet。当它的 Statement 关闭、重新执行或用于从多结果序列中获取下一个结果时,该ResultSet将被自动关闭。

注意:要按先ResultSet结果集,后Statement,最后Connection的顺序关闭资源,因为Statement和ResultSet是需要连接是才可以使用的,所以在使用结束之后有可能其他的Statement还需要连接,所以不能先关闭Connection。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一,什么是JDBC
  • 二,JDBC的原理
  • 三,程序员,JDBC,JDBC驱动的关系及说明
  • 四,JDBC的总结
  • 五,JDBC连接数据的步骤
  • 六,JDBC连接数据的详细步骤
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档