5个回答
2017-08-11 · 知道合伙人文学行家
关注
展开全部
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工作原理主要分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();
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();
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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()――执行返回多个结果集,多个更新计数值或这两者组合的语句。
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的实现方式
执行后,ClassLoader加载SQLServerDriver到JVM中,并加载此类的static段
根据JDBC规范,在此static段中必须调用DriverManager.registerDriver注册自己
DriverManager.getConnection时,DriverManager会遍历所有已经注册的Driver
逐个调用其中的Driver.acceptsURL方法
如果此Driver接受此URL,则调用Driver.connect方法返回一个Connection连接
Driver属于什么类型是不能直接从代码上看出来,具体要看Driver的实现方式
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最权威的请参考Sun公司的官方说明:
http://java.sun.com/products/jdbc/overview.html
http://java.sun.com/products/jdbc/overview.html
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询