<%@ page contentType="text/html; charset=gb2312"%> JDBC中常用的类库和程序中具体实现方法
网站公告:   ◆北天JAVA技术网热情为java爱好者服务,本网内容包括JAVA(JSP、servlet、EJB、webservice、j2ee、javabean、应用服务器、JavaScript),数据库(MYSQL、SQL Server、Sybase、Oracle、DB2、数据库综合知识),设计研究(设计模式、Struts、Spring、Hibernate、设计框架、设计综合知识),WEB2.0新技术(主要介绍AJAX),以及各种技术的入门、实例、例子等等,欢迎各位多来坐坐!◆  诚邀各位JAVA爱好者加盟!◆  本网站内容丰富,更新快,保证每周20篇以上!  
加入收藏
设为首页
联系站长
承接项目
  相关资源:网站首页 | 免费培训学院 | 技术论坛 | JAVA聊天室 | 作家专栏 | 开发工具 | 认证考试 | 会员俱乐部
  JAVA技术初学者园地 | jsp与servlet | javascript | Java源代码 | EJB | web service | 应用服务器 | JAVA综合知识
  设计研究设计模式 | 设计框架 | Struts | Spring | Hibernate | 开源项目 | 面向对象设计 | 设计综合知识
  数 据 库MYSQL | SQL Server | Sybase | Oracle | DB2 | Informix | Access | 数据库综合知识
  其他资源:AJAX新技术 | 网站开发 | ERP软件 | OA办公软件 | 商业智能BI | 开发综合知识 | 承接项目 | 项目试用

 
 
JDBC中常用的类库和程序中具体实现方法
     发布者: 发布时间:2007-09-06
一、四种驱动程序概念


A、JDBC-ODBC Bridge


桥接器型的驱动程序,这类驱动程序的特色是必须在使用者端的计算机上事先安装好ODBC驱动程序,然后通过JDBC-ODBC的调用方法,进而通过ODBC来存取数据库。


作为JDK1.1后的一部分,是sun.jdbc.odbc包的一部分 Application--->JDBC-ODBC Bridge---->JDBC-ODBC Library--->ODBC Driver-->Database 适用于快速的原型系统,没有提供JDBC驱动的数据库如Access


B、JDBC-Native API Bridge


也是桥接器驱动程序之一,这类驱动程序也必须先在使用者计算机上先安装好特定的驱动程序(类似ODBC),然后通过JDBC-Native API桥接器的转换,把Java API调用转换成特定驱动程序的调用方法,进而存取数据库。


利用开发商提供的本地库来直接与数据库通信。 Application--->JDBC Driver---->Native Database library---->Database 比A类性能略好。


C、JDBC-middleware


这类型的驱动程序最大的好处就是省去了在使用者计算机上安装任何驱动程序的麻烦,只需在服务器端安装好middleware,而middleware会负 责所有存取数据库必要的转换。Application--->Jdbc Driver----->java middleware--->JDBC Driver---->Database 具有最大的灵活性,通常由那些非数据库厂商提供,是四种类型中最小的。


D、Pure JDBC driver


这类型的驱动程序是最成熟的JDBC驱动程序,不但无需在使用者计算机上安装任何额外的驱动程序,也不需要在服务器端安装任何中介程序(middleware),所有存取数据库的操作,都直接由驱动程序来完成。


Application--->Jdbc driver----->database engine--->database 最高的性能,通过自己的本地协议直接与数据库引擎通信,具备在Internet装配的能力。 JAVA天堂



二、常用的JDBC类与方法


1、DriverManager类:


负责管理JDBC驱动程序。使用JDBC驱动程序之前,必须先将驱动程序加载并向DriverManager注册后才可以使用,同时提供方法来建立与数据库的连接。


方法:

A、Class.forName(String driver); //加载注册驱动程序


B、Static Connection getConnection(String url,String user,String password) throws SQLException;


//取得对数据库的连接

C、Static Driver getDriver(String url) throws SQLExcetion;

//在已经向DriverManager注册的驱动程序中寻找一个能够打开url所指定的数据库的驱动程序


2、Connection类


负责维护JSP/JAVA数据库程序和数据库之间的联机。可以建立三个非常有用的类对象。


方法:

A、Statement createStatement() throws SQLException; //建立Statement类对象

Statement createStatement(int resultSetType,int resultSetConcurrency) throws SQLException;

// 建立Statement类对象


resultSetType值

TYPE_FORWARD_ONLY 结果集不可滚动

TYPE_SCROLL_INSENSITIVE 结果集可滚动,不反映数据库的变化

TYPE_SCROLL_SENSITIVE 结果集可滚动,反映数据库的变化


resultSetConcurrency值

CONCUR_READ_ONLY 不能用结果集更新数据

CONCUR_UPDATABLE 能用结果集更新数据


JDBC2.0中才支持滚动的结果集,而且可以对数据进行更新 JAVA天堂


B、DatabaseData getData() throws SQLException; //建立DatabaseData类对象


C、PreparedStatement prepareStatement(String sql) throws SQLException;

//建立PreparedStatement类对象


D、boolean getAutoCommit() throws SQLException //返回Connection类对象的AutoCommit


状态

E、void setAutoCommit(boolean autoCommit) throws SQLException

//设定Connection类对象的AutoCommit状态


F、void commit() throws SQLException //确定执行对数据库新增、删除或修改记录的操作


G、void rollback() throws SQLException //取消执行对数据库新增、删除或修改记录的操作


H、void close() throws SQLException //结束Connection对象对数据库的联机


I、boolean isClosed() throws SQLException //测试是否已经关闭Connection类对象对数据库的联机


3、Statement类


通过Statement类所提供的方法,可以利用标准的SQL命令,对数据库直接新增、删除或修改操作


方法:


A、ResultSet executeQuery(String sql) throws SQLException //使用SELECT命令对数据库进行查询


B、int executeUpdate(String sql) throws SQLException

//使用INSERTDELETEUPDATE对数据库进行新增、删除和修改操作。


C、void close() throws SQLException //结束Statement类对象对数据库的联机


4、PreparedStatement类


PreparedStatement类和Statement类的不同之处在于PreparedStatement类对象会将传入的SQL命令事先编好等待 使用,当有单一的SQL指令比多次执行时,用PreparedStatement类会比Statement类有效率


方法:


A、ResultSet executeQuery() throws SQLException //使用SELECT命令对数据库进行查询


B、int executeUpdate() throws SQLException

//使用INSERTDELETEUPDATE对数据库进行新增、删除和修改操作。


C、ResultSetData getData() throws SQLException

//取得ResultSet类对象有关字段的相关信息


D、void setInt(int parameterIndex,int x) throws SQLException

//设定整数类型数值给PreparedStatement类对象的IN参数


E、void setFloat(int parameterIndex,float x) throws SQLException

//设定浮点数类型数值给PreparedStatement类对象的IN参数



F、void setNull(int parameterIndex,int sqlType) throws SQLException

//设定NULL类型数值给PreparedStatement类对象的IN参数



G、void setString(int parameterIndex,String x) throws SQLException

//设定字符串类型数值给PreparedStatement类对象的IN参数


H、void setDate(int parameterIndex,Date x) throws SQLException

//设定日期类型数值给PreparedStatement类对象的IN参数


I、void setTime(int parameterIndex,Time x) throws SQLException

//设定时间类型数值给PreparedStatement类对象的IN参数


5、DatabaseData类


DatabaseData类保存了数据库的所有特性,并且提供许多方法来取得这些信息。


方法:


A、String getDatabaseProductName() throws SQLException //取得数据库名称


B、String getDatabaseProductVersion() throws SQLException //取得数据库版本代号


C、String getDriverName() throws SQLException //取得JDBC驱动程序的名称


D、String getDriverVersion() throws SQLException //取得JDBC驱动程序的版本代号


E、String getURL() throws SQLException //取得连接数据库的JDBC URL


F、String getUserName() throws SQLException //取得登录数据库的使用者帐号


6、ResultSet类


负责存储查询数据库的结果。并提供一系列的方法对数据库进行新增、删除和修改操作。也负责维护一个记录指针(Cursor),记录指针指向数据表中的某个记录,通过适当的移动记录指针,可以随心所欲的存取数据库,加强程序的效率。


方法:


A、boolean absolute(int row) throws SQLException //移动记录指针到指定的记录 JAVA天堂


B、void beforeFirst() throws SQLException //移动记录指针到第一笔记录之前


C、void afterLast() throws SQLException //移动记录指针到最后一笔记录之后


D、boolean first() throws SQLException //移动记录指针到第一笔记录


E、boolean last() throws SQLException //移动记录指针到最后一笔记录


F、boolean next() throws SQLException //移动记录指针到下一笔记录


G、boolean previous() throws SQLException //移动记录指针到上一笔记录


H、void deleteRow() throws SQLException //删除记录指针指向的记录


I、void moveToInsertRow() throws SQLException //移动记录指针以新增一笔记录


J、void moveToCurrentRow() throws SQLException //移动记录指针到被记忆的记录


K、void insertRow() throws SQLException //新增一笔记录到数据库中


L、void updateRow() throws SQLException //修改数据库中的一笔记录 JAVA天堂


M、void update类型(int columnIndex,类型 x) throws SQLException //修改指定字段的值


N、int get类型(int columnIndex) throws SQLException //取得指定字段的值


O、ResultSetData getData() throws SQLException //取得ResultSetData类对象


7、ResultSetData类


ResultSetData类对象保存了所有ResultSet类对象中关于字段的信息,提供许多方法来取得这些信息。


方法:


A、int getColumnCount() throws SQLException //取得ResultSet类对象的字段个数


B、int getColumnDisplaySize() throws SQLException //取得ResultSet类对象的字段长度


C、String getColumnName(int column) throws SQLException //取得ResultSet类对象的字段名称


D、String getColumnTypeName(int column) throws SQLException //取得ResultSet类对象的字段类型名称


E、String getTableName(int column) throws SQLException //取得ResultSet类对象的字段所属数据表的名称


F、boolean isCaseSensitive(int column) throws SQLException //测试ResultSet类对象的字段是否区分大小写


G、boolean isReadOnly(int column) throws SQLException //测试ResultSet类对象的字段是否为只读
    

 
(转载文章请保留出处:北天JAVA技术网(www.java114.com))
 
更多精彩文章:
彻底学习Java语言中的覆盖和重载的使用
对Java多线程技术中所有方法的详细解析
Java中使用接口实现多继承和多态的方法
提升JSP中页面响应速度的七大秘籍绝招
JSP连接ORACLE数据库时注意的一些问题
windows2003负载均衡遇到的问题
 
最近评论:
        
你曾悄悄的来过!
wow gold,wow gold,wow gold,ffxi gil max(8782)
        
冰封的往事!
wow power leveling,wow gold,wow power leveling,wow gold max(8603)
        
冰封的往事!
wow power leveling,wow gold,WoW Gold,wow gold max(7899)
        
飞舞的传奇!
传世私服,传世私服.传奇世界私服传奇世界私服,传世私服传世私服, 传奇世界私服传奇世界私服.传奇私服传奇私服. max(5350)
        
标 题:   
内 容:   
 
                                  
 
免责声明:该文章由网友发表,如果对您造成侵权,请联系站长

首页 - 承接项目 - 网站地图 - 联系我们 -
版权所有北天JAVA技术工作室 ICP证号:粤ICP备06079815号