永发信息网

JDBC的工作原理是什么?

答案:6  悬赏:70  手机版
解决时间 2021-01-03 03:37
要详细的~
最佳答案
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可支持多种数据库,各种数据库之间的操作必有不同,这就给更改数据源带来了很大的麻烦
全部回答
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();
简单描述把,就是建立一个类似于queue这样的集合对象,接着创建一定数量的connection对象,下一步就是将这个connection对象存入到queue,有应用需要调用的时候就从queue中拿出一个,当应用用完以后,调用close方法,池就会将连接放回到queue中。这样程序在运行的过程中就无需多次建立数据库连接了,可以提高系统执行效率。
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()――执行返回多个结果集,多个更新计数值或这两者组合的语句。
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的实现方式
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
李春亚这个名字怎么样呢?
梦见我骑了一匹没有马鞍的马
哪里有码头,可以买到便宜的海鲜
介绍日月潭的几句话要短的急急急
雨昕太阳能自动上水表上面显示水是满的就是不
科三考试合格了,都半个月了,12123显示还是
墙皮破了杂补
天真摄影怎么样
华东地区包括哪些地方?
东风标致308停着然后又要开.启动时车子会往前
滴滴快车车牌号不存在
FA骂人的简写是什么意思
惧的反义词
昆山石牌欣基路88号到昆山玉山小学有几公里
请教上SQLite如何获得id的最大值
推荐资讯
铜仁市石阡县公安局出入境管理大队办公地址在
求pr视频剪辑软件的Mac版,百度云盘发送。
韩国柴油、汽油今天价格多少啊?
托福考试流程是怎样的~
金湖县民政局在什么地方啊,我要处理点事
spss中怎样将被试样本的基本情况制成表格
怎样删除百度输入法
幼儿园班级情况怎么写
The song he sang at the party the most pop
氵作为部首怎么读
听说火影有几十集全是讲做任务的,可以不用看
黄草岭工商所办公地址在什么地方?我要处理点
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?