永发信息网

JDBC的工作原理是什么?

答案:6  悬赏:70  手机版
解决时间 2021-01-03 03:37
  • 提问者网友:像風在裏
  • 2021-01-02 04:32
要详细的~
最佳答案
  • 五星知识达人网友:从此江山别
  • 2021-01-09 21:40
JDBC是Sun公司制定的一个可以用Java语言连接数据库的技术。
JDBC工作原理主要分3个步骤:1、加载数据库驱动。2、获取数据库连接。3、发送sql语句访问数据库 。
1、加载数据驱动:使用Class.forName方法,调用这个方法会加载数据库驱动com.MySQL.jdbc.driver。
关于数据库驱动的理解,其实是sun公司给了一个Driver的接口,然后各个数据厂商根据自己的数据库
来实现这个接口。当要访问数据库的时候,需要引入这个第三方类库。类的加载主要分为5个部分,
加载、验证、准备、解析、初始化。在初始化的部分用到了DriverManager.registerDriver()方法,将
自己注册给DriverManager的Driver接口。这个地方体现了多态。这个时候就可以使用Driver了。
2、获取数据库连接DriverManager.getConnection()。这个方法主要调用driver的connect()方法
返回一个实现了Connection接口的对象。
3、然后利用Connection对象创建Statement,发送sql语句访问数据库。
延伸:JDBC基础知识

JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序,并且可跨平台运行,并且不受数据库供应商的限制。
1、跨平台运行:这是继承了Java语言的“一次编译,到处运行”的特点;
2、不受数据库供应商的限制:巧妙在于JDBC设有两种接口,一个是面向应用程序层,其作用是使得开发人员通过SQL调用数据库和处理结果,而不需要考虑数据库的提供商;另一个是驱动程序层,处理与具体驱动程序的交互,JDBC驱动程序可以利用JDBC API创建Java程序和数据源之间的桥梁。应用程序只需要编写一次,便可以移到各种驱动程序上运行。Sun提供了一个驱动管理器,数据库供应商——如MySQL、Oracle,提供的驱动程序满足驱动管理器的要求就可以被识别,就可以正常工作。所以JDBC不受数据库供应商的限制。
JDBC API可以作为连接Java应用程序与各种关系数据库的纽带,在带来方便的同时也有负面影响,以下是JDBC的优、缺点。优点如下:

· 操作便捷:JDBC使得开发人员不需要再使用复杂的驱动器调用命令和函数;
· 可移植性强:JDBC支持不同的关系数据库,所以可以使同一个应用程序支持多个数据库的访问,只要加载相应的驱动程序即可;
· 通用性好:JDBC-ODBC桥接驱动器将JDBC函数换成ODBC;
· 面向对象:可以将常用的JDBC数据库连接封装成一个类,在使用的时候直接调用即可。
缺点如下:
· 访问数据记录的速度受到一定程度的影响;
· 更改数据源困难:JDBC可支持多种数据库,各种数据库之间的操作必有不同,这就给更改数据源带来了很大的麻烦
全部回答
  • 1楼网友:从此江山别
  • 2021-01-10 04:39
JDBC的工作原理: 1.这里以连接Mysql数据库为例: 驱动程序为:com.mysql.jdbc.Driver 连接字符串(url)为:jdbc:mysql://localhost:3306/test1.加载连接数据库的驱动程序: Class.forName("com.mysql.jdbc.Driver"); 2.创建与数据源的连接: String url = "jdbc:mysql://localhost:3306/test"; Connection con = DriverManager.getConnection(url,"user","passwd"); 3.查询数据库:创建Statement对象并执行SQL语句以返回一个ResultSet对象 Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery("select * from DBTableName"); 4.获取当前记录集中的某一记录的各个字段的值: String name = rs.getString("name"); int age = rs.getInt("age"); float wage = rs.getFloat("wage"); 5.关闭结果集,关闭查询语句,断开与数据库的连接: rs.close(); stmt.close(); con.close();
  • 2楼网友:白昼之月
  • 2021-01-10 03:30
简单描述把,就是建立一个类似于queue这样的集合对象,接着创建一定数量的connection对象,下一步就是将这个connection对象存入到queue,有应用需要调用的时候就从queue中拿出一个,当应用用完以后,调用close方法,池就会将连接放回到queue中。这样程序在运行的过程中就无需多次建立数据库连接了,可以提高系统执行效率。
  • 3楼网友:野味小生
  • 2021-01-10 00:21
JDBC程序描述为包含如下过程的应用: 1. 引入一个必要的类 2. 加载JDBC驱动程序 3. 标识数据源(URL、Username、Password) 4. 分配一个Connection对象 5. 分配一个Statement对象 6. 使用该Statement对象执行检查 SQL语句 7. 从返回的ResultSet对象中检索数据 类似于迭代器的操作 8. 关闭ResultSet对象 9. 关闭Statement对象 10. 关闭Connection对象 装载驱动程序 通过JDBC来连接关系数据库,应用程序必须采取的第一个合理步骤是加载合适的JDBC驱动程序,并获得一个与该数据库的连接。使用JDBC的DriverManager类可以实现。 DriverManager类实现了java.sql.Driver接口。 加载Driver接口并把它注册给DriverManager类有两种方法: (1) 使用Class.forName()方法 (2) 标识jdbc.drivers系统属性内的Driver类 建立连接 实现Connection接口的一个类对象(即一个Connection对象)代表一个与某个具体数据源的连接。Connection对象实际上是建立一个上下文环境,以便程序员能在它里面创建并执行SQl命令。 Connection databaseConnection = DriverManager.getConnection(sourceURL); 语句与结果集 Statement接口提供了执行SQL语句和检索结构的一种方法。由于Statement是一个接口,所以程序员不能直接创建一个Statement对象。通常创建这个对象的方法是: Statement statement = connection.createStatement(); 当建成一个Statement对象之后,它提供一个工作空间供用户创建SQL查询,执行该查询,以及检索返回的任何结果。当建成一个Statement对象之后,就可以通过调用该Statement对象的下列执行方法来执行SQL查询 executeQuery()――用于在单个ResultSet对象的数据库中检索出数据的SQL语句。 executeUpdate()――执行不返回ResultSet对象的查询。它的返回值是一个整数(称为更新计数),它给出受到影响的行数。 execute()――执行返回多个结果集,多个更新计数值或这两者组合的语句。
  • 4楼网友:你哪知我潦倒为你
  • 2021-01-09 22:51
Class.forName( "com.microsoft.sqlserver.jdbc.SQLServerDriver "); 执行后,ClassLoader加载SQLServerDriver到JVM中,并加载此类的static段 根据JDBC规范,在此static段中必须调用DriverManager.registerDriver注册自己 DriverManager.getConnection时,DriverManager会遍历所有已经注册的Driver 逐个调用其中的Driver.acceptsURL方法 如果此Driver接受此URL,则调用Driver.connect方法返回一个Connection连接 Driver属于什么类型是不能直接从代码上看出来,具体要看Driver的实现方式
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯