`

[转]JDBC(一)

阅读更多
 

JDBC

什么是JDBC?<o:p></o:p>

Java语言访问数据库的一种规范,是一套API<o:p></o:p>

JDBC (Java Database Connectivity) API,即Java数据库编程接口,是一组标准的Java语言中的接口和类,使用这些接口和类,Java客户端程序可以访问各种不同类型的数据库。比如建立数据库连接、执行SQL语句进行数据的存取操作。<o:p></o:p>

 <o:p></o:p>

   JDBC规范采用接口和实现分离的思想设计了Java数据库编程的框架。接口包含在java.sqljavax.sql包中,其中java.sql属于JavaSEjavax.sql属于JavaEE。这些接口的实现类叫做数据库驱动程序,由数据库的厂商或其它的厂商或个人提供。<o:p></o:p>

 <o:p></o:p>

   为了使客户端程序独立于特定的数据库驱动程序,JDBC规范建议开发者使用基于接口的编程方式,即尽量使应用仅依赖java.sqljavax.sql中的接口和类。

 

JDBC驱动程序:<o:p></o:p>

什么是JDBC驱动程序?<o:p></o:p>

这些是各个数据库厂家根据JDBC的规范制作的JDBC实现类<o:p></o:p>

JDBC驱动程序的四种类型:<o:p></o:p>

1.       第一种类型的驱动程序的实现是通过将JDBC的调用全部委托给其它编程接口来实现的,比如ODBC。这种类 型的驱动程序需要安装本地代码库,即依赖于本地的程序,所以便携性较差。比如JDBC-ODBC桥驱动程序<o:p></o:p>

2.       第二种类型的驱动程序的实现是部分基于Java语言的。即该驱动程序一部分是用Java语言编写,其它部分委托本地的数据库的客户端代码来实现。同类型1的驱动一样,该类型的驱动程序也依赖本地的程序,所以便携性较差<o:p></o:p>

3.       第三种类型的驱动程序的实现是全部基于JAVA语言的。该类型的驱动程序通常由某个中间件服务器提供,这样客户端程序可以使用数据库无关的协议和中间件服务器进行通信,中间件服务器再将客户端的JDBC调用转发给数据库进行处理<o:p></o:p>

4.       第四种类型的驱动程序的实现是全部基于JAVA语言的。该类型的驱动程序中包含了特定数据库的访问协议,使得客户端可以直接和数据库进行通信<o:p></o:p>

 <o:p></o:p>

JDBC类结构:<o:p></o:p>

                           DriverManager

<o:p></o:p> 

<o:p></o:p>

Driver                               Driver<o:p></o:p>

 <o:p></o:p>

Connection                         Connection<o:p></o:p>

 <o:p></o:p>

Statement                                  Statement<o:p></o:p>

 <o:p></o:p>

Resultset                                    Resultset<o:p></o:p>

<o:p></o:p> 

DriverManager:这个是一个实现类,它是一个工厂类,用来生产Driver对象的<o:p></o:p>

这个类的结构设计模式为工厂方法<o:p></o:p>

Driver:这是驱动程序对象的接口,它指向一个实实在在的数据库驱动程序对象,那么这个数据库驱动程序对象是从哪里来的呢?<o:p></o:p>

DriverManager工厂中有个方法:getDriver(String URL),通过这个方法可以得到驱动程序对象,这个方法是在各个数据库厂商按JDBC规范设计的数据库驱动程序包里的类中静态实现的,也就是在静态块中<o:p></o:p>

Connection:这个接口可以制向一个数据库连接对象,那么如何得到这个连接对象呢?<o:p></o:p>

是通过DriverManager工厂中的getConnection(String URL)方法得到的<o:p></o:p>

Statement:用于执行静态的SQL语句的接口,通过Connection中的createStatement方法得到的<o:p></o:p>

Resultset:用于指向结果集对象的接口,结果集对象是通过Statement中的execute等方法得到的<o:p></o:p>

 <o:p></o:p>

JAVA使用JDBC访问数据库的步骤:<o:p></o:p>

1.     得到数据库驱动程序<o:p></o:p>

2.     创建数据库连接<o:p></o:p>

3.     执行SQL语句<o:p></o:p>

4.     得到结果集<o:p></o:p>

5.     对结果集做相应的处理(,,,)<o:p></o:p>

6.     关闭资源:这里释放的是DB中的资源<o:p></o:p>

 <o:p></o:p>

  <o:p></o:p>

设置classpath:<o:p></o:p>

1.     java文件中起的包名一定要是工程基目录下的子目录,classpath:基目录<o:p></o:p>

2.     .jar,需要将这个.jar包的路径包括这个文件的全名添加到classpath中来<o:p></o:p>

Oracle连接字符串的书写格式:<o:p></o:p>

“oracle:jdbc:thin:@ip:1521: 数据库名”,”数据库用户名”,”数据库密码”<o:p></o:p>

 <o:p></o:p>

简单的例子:<o:p></o:p>

package moudule1.first;<o:p></o:p>

 <o:p></o:p>

import java.sql.*;<o:p></o:p>

 <o:p></o:p>

public class FirstJdbc<o:p></o:p>

{<o:p></o:p>

      public static void main(String[] args)<o:p></o:p>

      {<o:p></o:p>

                 String sql="select * from yuchen_user";<o:p></o:p>

                 Connection con=null;<o:p></o:p>

                 Statement st=null;<o:p></o:p>

                 ResultSet rs=null;<o:p></o:p>

                 <o:p></o:p>

       try<o:p></o:p>

       {  <o:p></o:p>

                 Class.forName("oracle.jdbc.driver.OracleDriver");<o:p></o:p>

                 con=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:name", "scott","tiger");<o:p></o:p>

                 st=con.createStatement();<o:p></o:p>

                 rs=st.executeQuery(sql);<o:p></o:p>

                 while(rs.next())<o:p></o:p>

                 {<o:p></o:p>

                            System.out.println(rs.getInt("id"));<o:p></o:p>

                            System.out.println(rs.getString("name"));<o:p></o:p>

                 }<o:p></o:p>

       }catch(Exception e)<o:p></o:p>

       {<o:p></o:p>

                 e.printStackTrace();<o:p></o:p>

       }finally<o:p></o:p>

       {<o:p></o:p>

                 try<o:p></o:p>

                 {<o:p></o:p>

                      con.close();<o:p></o:p>

                 }catch(Exception e)<o:p></o:p>

                 {}<o:p></o:p>

                 <o:p></o:p>

                 try<o:p></o:p>

                 {<o:p></o:p>

                      st.close();<o:p></o:p>

                 }catch(Exception e)<o:p></o:p>

                 {<o:p></o:p>

                 }<o:p></o:p>

                 <o:p></o:p>

                 try<o:p></o:p>

                 {<o:p></o:p>

                      rs.close();<o:p></o:p>

                 }catch(Exception e)<o:p></o:p>

                 {<o:p></o:p>

                 }<o:p></o:p>

                      <o:p></o:p>

       }<o:p></o:p>

分享到:
评论

相关推荐

    JDBC详解HTML-JDBC.pp

    &lt;3&gt;.JDBC网络纯java驱动程序:将JDBC转换为与DBMS无关的网络协议,又被某服务器转换为一种DBMS 协议,以操作各种数据库 &lt;4&gt;.本地协议纯java驱动程序:将JDBC调用直接转换成JDBC所使用的网络协议 2、JDBC操作基本...

    JDBC驱动

    本软件为MS SQL SERVER2000 的jdbc驱动程序,在用java连接sql server2000时必须要按照此软件。

    JDBC API教程与参考手册part3

    除了介绍JDBC 3.0 API规范外,本书还包含了更深层次的解释——从循序渐进的教程到每一个类和接口的全面参考。 对于那些学习Java技术的新手而言,本书还介绍了Java编程语言和SQL的基础知识。以此为起点,您将学习如何...

    JDBC API教程与参考手册part4

    除了介绍JDBC 3.0 API规范外,本书还包含了更深层次的解释——从循序渐进的教程到每一个类和接口的全面参考。 对于那些学习Java技术的新手而言,本书还介绍了Java编程语言和SQL的基础知识。以此为起点,您将学习如何...

    jdbc连接数据库的方式2

    下面是使用JDBC连接MySql的一个小的教程 1、查找驱动程序 MySQL目前提供的java驱动程序为Connection/J,可以从MySQL官方网站下载,并找到mysql-connector-java-3.0.15-ga-bin.jar文件,此驱动程序为纯java驱动...

    JDBC API教程与参考手册part2

    除了介绍JDBC 3.0 API规范外,本书还包含了更深层次的解释——从循序渐进的教程到每一个类和接口的全面参考。 对于那些学习Java技术的新手而言,本书还介绍了Java编程语言和SQL的基础知识。以此为起点,您将学习如何...

    梦数据库的JDBC驱动程序

    JDBC 定义了一个跨数据库、跨平台的通用 SQL 数据库 API。 DM JDBC 数据库驱动程序是一个能够支持基本 SQL 功能的通用应用程序编程接口,支持一般的 SQL 数据库访问。通过 JDBC 驱动程序,用户可以在应用程序中实现...

    JDBC数据库连接三种方法

    一直用JAVA 框架进行WEB 开发,...现在又要重新找工作,为了面试,自己写了一个使用JDBC 连接的测试用例,使用的是Mysql数据库,下载的朋友请仔细阅读Readme.txt文档,有不明白的就发送到我邮箱:zhunaigao@hotmail.com

    jdbc操作文档,数据库基本操作文档集合

    Replace:用一个字符串替换另一个字符串中的字符 15.日期函数 sysdate:当前日期 months_between(日期值1,日期值2):求出给定日期范围的月数 add_months(日期值,给定的月数):在制定日期上加上指定的月数,求出...

    java jdbc原生连接+连接池.zip

    JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问解决部分mybatis或者hibernate不支持的数据库,例informix。通过pool连接池提高性能,并将...

    (new)jdbc连接informix乱码问题

    前面发布了一个,不完善,可是又不知道怎么修改,怕耽误别人,所以重新上传一个。我的qq:25057750,欢迎探讨技术问题。 jdbc对汉字的支持欠佳,informix的数据库,用jdbc连接后,汉字显示乱码,有人说用字符转换...

    hive-jdbc-1.1.1.jar

    hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的...

    easy-jdbc.jar

    此文件为JDBC的工具类,JDBC操作数据库时,每执行一次操作都要重新执行JDBC的获取连接对象、获取处理命令的对象、执行sql操作、处理结果、关闭资源的几个步骤的话,大大加重的程序员的代码压力,由于这些步骤基本...

    kettle执行转换每一行数据

    kettle执行转换每一行数据,数据库连接JDBC,oracle数据库,scott用户,密码oracle

    JDBC概述及其常用类和接口

    JDBC-ODBC桥是一个JDBC驱动程序,完成了从JDBC操作到ODBC操作之间的转换工作,允许JDBC驱动程序被用作ODBC的驱动程序。 使用步骤 首先加载JDBC-ODBC桥的驱动程序 Class.forName(“sun.jdbc.odbc.JdbcDriver”); ...

    Java-Web程序设计实战-第8章-JDBC详解.pptx

    Java程序的JDBC可以分为如下四种驱动类型: 1)JDBC-ODBC桥 ODBC是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的...

    groovy将JDBC中oracle存储过程游标转换为多层json

    出参json有两层结构,第一层是"data": [],第二层的"checkinfo": [],"bacinfo": [],"tesinfo": []节点是在"data": []层下面。 文档包含了以下内容。 1.创建解析xml的函数脚本 2.创建oracle存储过程脚本 3.JDBC...

    spring-jdbc-orm:基于spring-jdbc 写的一个小型ORM

    spring-jdbc-orm基于spring-jdbc 写的一个小型ORM设计初衷由于公司现有的代码工程经历了无数人的手,原来的初衷已经变了模样,可以说乱的让我不能接受,代码中大部分都使用了Map封装实体信息,有伤大雅,大部分业务...

    JDBC高级(一)

    这里需要先准备好一个User类,属性包含int id、 String userName、String password。以及构造方法、操作方法 (1)查询指定的一个数据行,转换成对应的User类对象 // 查询指定的一个数据行,转换成对应的User类对象 ...

Global site tag (gtag.js) - Google Analytics