`
moxu
  • 浏览: 63777 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
文章分类
社区版块
存档分类
最新评论

jdbc的工作原因

阅读更多

相信大家对JDBC并不陌生,编程人员可以利用JDBC向各种关系数据发送SQL语句。而且也不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序。看来有了jdbc后有很多很多的好处嘛,下面就说下JDBC工作原理、结构以及对数据库的访问,希望对大家有所帮助。

JDBC的工作原理
   JDBC的设计基于X/Open SQL CLI(调用级接口)这一模型。它通过定义出一组 API对象和方法以用于同数据库进行交互。

在Java程序中要操作数据库,一般应该通过如下几步(利用JDBC访问数据库的编程步骤):
(1)加载连接数据库的驱动程序 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
(2)创建与数据源的连接
 String url="jdbc:odbc:DatabaseDSN";  
 Connection con=DriverManager.getConnection(url,"Login","Password");
(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再stmt最后为con)
    rs.close();    
    stmt.close();
    con.close(); 
JDBC的结构
   JDBC主要包含两部分:面向Java程序员的JDBC API及面向数据库厂商的JDBC Drive API。
(1)面向Java程序员的JDBC API:Java程序员通过调用此API从而实现连接数据库、执行SQL语句并返回结果集等编程数据库的能力,它主要是由一系列的接口定义所构成。
java.sql.DriveManager:该接口主要定义了用来处理装载驱动程序并且为创建新的数据库连接提供支持。
java.sql.Connection:该接口主要定义了实现对某一种指定数据库连接的功能。
java.sql.Statement:该接口主要定义了在一个给定的连接中作为SQL语句执行声明的容器以实现对数据库的操作。它主要包含有如下的两种子类型。
    java.sql.PreparedStatement:该接口主要定义了用于执行带或不带 IN 参数的预编译 SQL 语句。
    java.sql.CallableStatement:该接口主要定义了用于执行数据库的存储过程的雕用。
java.sql.ResultSet:该接口主要定义了用于执行对数据库的操作所返回的结果集。
(2)面向数据库厂商的JDBC Drive API:数据库厂商必须提供相应的驱动程序并实现JDBC API所要求的基本接口(每个数据库系统厂商必须提供对DriveManager、Connection、Statement、ResultSet等接口的具体实现),从而最终保证Java程序员通过JDBC实现对不同的数据库操作。

通过JDBC 实现对数据库的访问
(1)引用必要的包
 import java.sql.*;  //它包含有操作数据库的各个类与接口   
(2)加载连接数据库的驱动程序类 
    为实现与特定的数据库相连接,JDBC必须加载相应的驱动程序类。这通常可以采用Class.forName()方法显式地加载一个驱动程序类,由驱动程序负责向DriverManager登记注册并在与数据库相连接时,DriverManager将使用此驱动程序。
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
注意:这条语句直接加载了sun公司提供的JDBC-ODBC Bridge驱动程序类。
(3)创建与数据源的连接
 String url="jdbc:odbc:DatabaseDSN";  
 Connection con=DriverManager.getConnection(url,"Login","Password");
注意:采用DriverManager类中的getConnection()方法实现与url所指定的数据源建立连接并返回一个Connection类的对象,以后对这个数据源的操作都是基于该Connection类对象;但对于Access等小型数据库,可以不用给出用户名与密码。
 String url="jdbc:odbc:DatabaseDSN";  
 Connection con=DriverManager.getConnection(url);
 System.out.println(con.getCatalog()); //取得数据库的完整路径及文件名 
    JDBC借用了url语法来确定全球的数据库(数据库URL类似于通用的URL),对由url所指定的数据源的表示格式为
   jdbc::[ database locator]
jdbc---指出要使用JDBC
subprotocal---定义驱动程序类型
database locator---提供网络数据库的位置和端口号(包括主机名、端口和数据库系统名等)    jdbc:odbc://host.domain.com:port/databasefile    
  主协议jdbc   驱动程序类型为odbc,它指明JDBC管理器如何访问数据库,该例指名为采用JDBC-ODBC桥接方式;其它为数据库的位置表示。   
例如:装载mySQL JDBC驱动程序
Class.forName("org.gjt.mm.mysql.Driver ");
String url 
="jdbc:mysql://localhost/softforum?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1" 
  //testDB为你的数据库名 
  Connection conn= DriverManager.getConnection(url);
例如:装载Oracle JDBC OCI驱动程序(用thin模式)
Class.forName("oracle.jdbc.driver.OracleDriver ");
String url="jdbc:oracle:thin:@localhost:1521:orcl"; 
  //orcl为你的数据库的SID 
  String user="scott"; 
  String password="tiger"; 
  Connection conn= DriverManager.getConnection(url,user,password);
注意:也可以通过con.setCatalog("MyDatabase")来加载数据库。
例如:装载DB2驱动程序
Class.forName("com.ibm.db2.jdbc.app.DB2Driver ")
String url="jdbc:db2://localhost:5000/sample"; 
  //sample为你的数据库名 
  String user="admin"; 
  String password=""; 
  Connection conn= DriverManager.getConnection(url,user,password);

例如:装载MicroSoft SQLServer驱动程序
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver ");
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs"; 
  //pubs为你的数据库的 
  String user="sa"; 
  String password="";   
  Connection conn= DriverManager.getConnection(url,user,password);
(4)查询数据库的一些结构信息
     这主要是获得数据库中的各个表,各个列及数据类型和存储过程等各方面的信息。根据这些信息,从而可以访问一个未知结构的数据库。这主要是通过DatabaseMetaData类的对象来实现并调用其中的方法来获得数据库的详细信息(即数据库的基本信息,数据库中的各个表的情况,表中的各个列的信息及索引方面的信息)。
    DatabaseMetaData dbms=con.getMetaData();
    System.out.println("数据库的驱动程序为 "+dbms.getDriverName());
(5)查询数据库中的数据:
   在JDBC中查询数据库中的数据的执行方法可以分为三种类型,分别对应Statement (用于执行不带参数的简单SQL语句字符串),PreparedStatement(预编译SQL语句)和CallableStatement(主要用于执行存储过程)三个接口。

转载请注明出处:IT学习网 http://www.itxuexi.com/

本文来源于:IT学习网 http://www.itxuexi.com/tech/79363.html

分享到:
评论

相关推荐

    jdbc java file config

    此外,了解JDBC驱动文件的位置对于安装和维护工作是必须的,文件中提到的位置信息能够帮助用户快速定位和配置所需的JDBC驱动文件。 整体来说,JDBC在Java应用程序中扮演了数据库连接层的角色,通过JDBC API,Java...

    Cannot load JDBC driver class 'com.microsoft.sqlserver.jdbc.SQLServerDriver'

    这个问题可能有以下几个原因: 1. **驱动类未正确导入**:在Java项目中,确保已经添加了Microsoft SQL Server JDBC驱动的jar文件到类路径(Classpath)。如果使用Maven或Gradle,需要在项目的依赖管理中包含对应的...

    SQLServer_sqljdbc.zip

    报错的原因通常是因为Kettle执行环境缺少SQL Server数据库的JDBC驱动,JDBC(Java Database Connectivity)是Java语言与各种数据库交互的标准接口。在本例中,"sqljdbc.zip" 文件包含了解决这个问题所需的关键组件,...

    IT—JDBC数据库编程的研究

    这一异常通常发生在未能正确加载数据库驱动程序的情况下,可能的原因包括未安装JDBC驱动或驱动类名拼写错误。解决此类问题的步骤包括确保已安装对应数据库的JDBC驱动,并在代码中正确指定驱动类名,例如: ```java ...

    JDBC 4 ORACLE

    这个文件出现在上下文中的原因可能是为了对比不同数据库驱动的使用方式,或者是为了展示非Oracle官方驱动如何与Oracle数据库配合工作的示例。虽然不直接关联于Oracle JDBC,但可以作为了解其他JDBC驱动使用方式的...

    Oracle JDBC 连接时的一个BUG

    Oracle JDBC驱动是Java应用程序连接到Oracle数据库的桥梁,但有时候由于各种原因,如代码错误、配置不当或驱动版本不兼容,可能会导致连接异常。 描述中的链接指向了一篇博客文章,虽然具体内容没有给出,但通常这...

    junit测试JDBC错误源代码

    如果在测试过程中发现没有正确插入数据,可能的原因有: 1. **数据库连接问题**:检查DB_URL、USER、PASS是否正确,确保能成功连接到数据库。 2. **SQL语句错误**:查看SQL语句的语法和逻辑,确认是否符合预期。 3....

    JDBC-Java数据库编程

    #### 三、JDBC的工作原理 JDBC 的设计允许开发者开发基于其他数据库 API 的 JDBC 驱动程序。其体系结构与 ODBC 之间存在紧密的映射关系,因为两者都基于 X/Open SQL CLI 标准。 ##### 3.1 关键组件 - **...

    类似hibernate的jdbc封装

    这就是为何需要对其进行封装的原因。 这个“类似hibernate的jdbc简单封装”可能包括以下特性: 1. **连接池管理**:为了提高性能和资源利用率,封装可能会集成如C3P0、HikariCP或Apache DBCP等连接池库,使得...

    JDBC连接的JAR包

    首先,要理解JDBC的工作原理。当一个Java应用程序需要与数据库通信时,它会通过加载并实例化特定数据库的JDBC驱动(如MySQL驱动)来建立连接。这个`mysql-connector-java-5.1.25.jar`文件包含了所有必要的类和方法,...

    ORACLE-JDBC

    然而,经过修改后的代码现在可以正常使用,这对于研究Oracle JDBC的工作原理和进行定制化开发具有一定的价值。不过,使用这些代码时必须遵循合法性和道德规范,避免非法用途或商业目的,以免产生法律责任。

    MySQL 的JDBC驱动安装.docx

    在安装MySQL的JDBC驱动之前,确保已经完成以下准备工作: 1. **安装Java环境**:确保计算机上已安装了Java Development Kit (JDK)。 2. **下载JDBC驱动**:从MySQL官方网站或其他可信源下载mysql-connector-java...

    过第三方JDBC驱动包JTDS连接SQLServer2005Demo

    在尝试连接SQL Server 2005时,如果使用微软的sqljdbc.jar遇到问题,可能是由于版本不兼容、配置错误或驱动加载失败等原因。在这种情况下,更换为JTDS驱动是一种有效的解决方法。JTDS驱动不仅支持SQL Server 2005,...

    一个简单的关于java应用的JDBC和池连接

    然而,频繁地创建和关闭数据库连接会消耗大量资源,这就是引入数据库连接池的原因。数据库连接池,如Apache的DBCP、C3P0或HikariCP,管理数据库连接的生命周期,提供高效的连接复用。 数据库连接池的工作流程如下:...

    JSP+SQL房屋租赁管理信息系统JDBC(源代码+设计说明书+答辩PPT).zip

    《JSP+SQL房屋租赁管理信息系统》是一款基于Java...本系统通过集成JSP、SQL和JDBC,实现了房屋租赁业务的自动化管理,提高了工作效率,减少了人为错误。同时,提供的设计说明书和答辩PPT为理解和复用该系统提供了便利。

    人事管理系统 jsp

    这些记录可能包括奖项名称、颁发日期、原因等,存储在“奖惩记录”表中,同样与员工ID关联。 五、人员调动管理: 人员调动模块用于处理员工的部门变动,包括调动日期、原部门、新部门等信息。这需要在“员工信息”...

    SpringJDBC:Spring中的数据库操作

    6. **异常处理**:Spring JDBC将JDBC的检查异常转换为Spring的`DataAccessException`子类,这样开发者就可以更清晰地知道错误的原因,而无需关注底层的JDBC异常。 7. **结果集映射**:除了自定义`RowMapper`外,...

    kettle 7.1数据库连接驱动包

    在配置Kettle环境时,经常遇到数据库连接不上问题,这可能是由于以下几个原因: 1. 驱动包缺失或版本不匹配:确保下载了与所用数据库版本相匹配的驱动包,例如,题目中的Oracle_10g_10.2.0.4_JDBC_ojdbc14.jar是...

    tomcat6.0配置数据库连接池常见错误解决方案

    4. **重新部署应用:** 清除Tomcat工作目录下的临时文件,并重新部署应用。 5. **检查系统日志:** 查看Tomcat的日志文件(如`catalina.out`),寻找更多关于JDBC驱动加载失败的具体信息,以便进一步定位问题。 ...

Global site tag (gtag.js) - Google Analytics