一、四种驱动程序概念
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装配的能力。
二、常用的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中才支持滚动的结果集,而且可以对数据进行更新
B、DatabaseMetaData getMetaData() throws SQLException; //建立DatabaseMetaData类对象
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、ResultSetMetaData getMetaData() 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、DatabaseMetaData类
DatabaseMetaData类保存了数据库的所有特性,并且提供许多方法来取得这些信息。
方法:
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 //移动记录指针到指定的记录
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 //修改数据库中的一笔记录
M、void update类型(int columnIndex,类型 x) throws SQLException //修改指定字段的值
N、int get类型(int columnIndex) throws SQLException //取得指定字段的值
O、ResultSetMetaData getMetaData() throws SQLException //取得ResultSetMetaData类对象
7、ResultSetMetaData类
ResultSetMetaData类对象保存了所有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常用工具类,字符串、日期、jdbc、xml解析等等,20161230又更新了日期工具
dos输入输出,字符串解析,导出成Excel,访问xml文件,各种数据库连接,哈费曼编码的实现,获取ip地址,日期处理,系统托盘的应用,自定义按钮外观,窗口居中显示,人民币转成大写,数据备份,遗传算法等等
如何根据企业应用系统的环境和特征,选择合适的JDBC 数据库驱动程序工作方式,是开发者在设计系统与后台数据库连接时,首先需要考虑的问题。本文通过对JDBC 四个常用的驱动程序工作方式进行分析与比较,旨在为Java ...
如何根据企业应用系统的环境和特征,选择合适的JDBC 数据库驱动程序工作方式,是开发者在设计系统与后台数据库连接时,首先需要考虑的问题。本文通过对JDBC 四个常用的驱动程序工作方式进行分析与比较,旨在为Java ...
常用框架:如Spring、MyBatis等框架的使用方法和内部原理都有涉及。 数据库相关:包括关系型数据库和非关系型数据库的使用,以及JDBC、MyBatis等与数据库交互的技术。 实战项目经验:分享了几个经典的Java项目,解析...
入门级功能:包括属性(配置),JDBC模板(数据库CRUD),JPA(Hibernate数据库CRUD),Mybatis(数据库CRUD),Mybatis(Mybatis数据库CRUD),thymeleaf(模板解析),beetl(模板解析),freemarker (模板解析)...
常用框架:如Spring、MyBatis等框架的使用方法和内部原理都有涉及。 数据库相关:包括关系型数据库和非关系型数据库的使用,以及JDBC、MyBatis等与数据库交互的技术。 实战项目经验:分享了几个经典的Java项目,解析...
常用框架:如Spring、MyBatis等框架的使用方法和内部原理都有涉及。 数据库相关:包括关系型数据库和非关系型数据库的使用,以及JDBC、MyBatis等与数据库交互的技术。 实战项目经验:分享了几个经典的Java项目,解析...
2、方法重载和方法重写的概念和区别 3、接口和内部类、抽象类的特性 4、文件读写的基本类 **5、串行化的注意事项以及如何实现串行化 6、线程的基本概念、线程的基本状态以及状态之间的关系 7、线程的同步、...
java.security.cert 提供用于解析和管理证书、证书撤消列表 (CRL) 和证书路径的类和接口。 java.security.interfaces 提供的接口用于生成 RSA Laboratory Technical Note PKCS#1 中定义的 RSA(Rivest、Shamir 和 ...
Hibernate使用dom4j解析XML配置文件和XML映射元文件。必需的。 ehcache-1.2.jar Hibernate可以使用不同cache缓存工具作为二级缓存。EHCache是缺省的cache缓存工具。如果没有其它的可选缓存工具,则为必需的。 ...
18.2 JDBC类和接口462 18.2.1 DriverManager类464 18.2.2 Connection接口466 18.2.3 Statement接口466 18.2.3 PreparedStatement接口467 18.2.4 ResultSet接口467 18.3 JDBC操作SQL469 18.4 JDBC基本示例473 18.5 ...
java.security.cert 提供用于解析和管理证书、证书撤消列表 (CRL) 和证书路径的类和接口。 java.security.interfaces 提供的接口用于生成 RSA Laboratory Technical Note PKCS#1 中定义的 RSA(Rivest、Shamir 和 ...
常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用...
2.1 android常用布局属性的介绍 2.2 android线性布局的介绍 2.3 android框架布局的使用 2.4 相对布局的使用 2.5 表格布局的介绍 三、Android解析xml文件 3.1 android解析xml文件 3.2 android使用pull解析xml 3.3 ...
常用框架:如Spring、MyBatis等框架的使用方法和内部原理都有涉及。 数据库相关:包括关系型数据库和非关系型数据库的使用,以及JDBC、MyBatis等与数据库交互的技术。 实战项目经验:分享了几个经典的Java项目,解析...
常用框架:如Spring、MyBatis等框架的使用方法和内部原理都有涉及。 数据库相关:包括关系型数据库和非关系型数据库的使用,以及JDBC、MyBatis等与数据库交互的技术。 实战项目经验:分享了几个经典的Java项目,解析...
常用框架:如Spring、MyBatis等框架的使用方法和内部原理都有涉及。 数据库相关:包括关系型数据库和非关系型数据库的使用,以及JDBC、MyBatis等与数据库交互的技术。 实战项目经验:分享了几个经典的Java项目,解析...
常用框架:如Spring、MyBatis等框架的使用方法和内部原理都有涉及。 数据库相关:包括关系型数据库和非关系型数据库的使用,以及JDBC、MyBatis等与数据库交互的技术。 实战项目经验:分享了几个经典的Java项目,解析...