Atitit.跨语言数据库db  api兼容性 jdbc odbc ado oledb 增强方案

1. 跨语言db api兼容性。。1

2. 目前访问数据库的接口很多。比较常用的jdbc odbc 以及c api (php用此接口),共约101个类+128个c函数1

2.1. Jdbc api数量  约60个类..java.sql包下面的。。大概几百个方法函数吧。。2

2.2. Odbc api数量::约78个,odbc是个非oo的api2

2.3. C api (mysql ): 约50个。。2

2.4. Ado   9个类  约一百多个api了吧2

2.5. Oledb 32个类2

3. ADO、OLEDB、ODBC之间的关系图4

4. Jdbc Package java.sql Jdbc api数量  约60个类..java.sql包下面的。。5

5. Odbc api信息 约78个api10

6. 参考19

1. 跨语言db api兼容性。。

方便源码移植。。需要实现常用的 jdbc odbc c_api接口。。总共约好几百个个方法函数(预估,因为jdbc方法数量与属性暂时未统计)

2. 目前访问数据库的接口很多。比较常用的jdbc odbc 以及c api (php用此接口),共约101个类+128个c函数

2.1. Jdbc api数量  约60个类..java.sql包下面的。。大概几百个方法函数吧。。

2.2. Odbc api数量::约78个,odbc是个非oo的api

2.3. C api (mysql ): 约50个。。

这些开发包支持两种模式的数据库开发:预编译的嵌入模式(例如Oracle的ProC,SQL Server的ESQL)和API调用(例如Oracle的OCI)。

作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://www.cnblogs.com/attilax/

2.4. Ado   9个类  约一百多个api了吧

ADO 对象

· Command

· Connection

· Error

· Field

· Parameter

· Property

· Record

· Recordset

· Stream

2.5. Oledb 32个类

System.Data.OleDb

OleDbCommand 类

OleDbCommandBuilder 类

OleDbConnection 类

OleDbConnection 成员

OleDbConnection 构造函数

OleDbConnection 方法

OleDbConnection 属性

OleDbConnection 事件

OleDbConnectionStringBuilder 类

OleDbDataAdapter 类

OleDbDataReader 类

OleDbEnumerator 类

OleDbError 类

OleDbErrorCollection 类

OleDbException 类

OleDbFactory 类

OleDbInfoMessageEventArgs 类

OleDbInfoMessageEventHandler 委托

OleDbLiteral 枚举

OleDbMetaDataCollectionNames 类

OleDbMetaDataColumnNames 类

OleDbParameter 类

OleDbParameterCollection 类

OleDbPermission 类

OleDbPermissionAttribute 类

OleDbRowUpdatedEventArgs 类

OleDbRowUpdatedEventHandler 委托

OleDbRowUpdatingEventArgs 类

OleDbRowUpdatingEventHandler 委托

OleDbSchemaGuid 类

OleDbTransaction 类

OleDbType 枚举

3. ADO、OLEDB、ODBC之间的关系图

Oracle的OCI是一个非常优秀的C语言开发包,在ODBC中就在很多地方参照了OCI的设计。

下面是微软提出的所有连接方式:

ODBC(Open DataBase Connectivity)开放数据库互联。是由微软主导的数据库链接标准,只支持关系型数据库。

DAO(Data Access Object)数据访问对象。不提供远程访问功能。

RDO(Remote Data Object)远程数据对象。速度快,支持SQL Server存储过程。

OLEDB(Object Linking and Embedding DataBase)对象链接和嵌入数据库。

ADO(ActiveX Data Object)ActiveX数据对象。

使用中,我们一般用OLE-DB和ADO替代DAO和RDO,DAO和RDO我也没用过,所以下面主要记录下ADO、OLEDB、ODBC之间的关系。

编程

接口)。这些API利用 SQL来完成其大部

4. Jdbc Package java.sql Jdbc api数量  约60个类..java.sql包下面的。。

Provides the API for accessing and processing data stored in a data source (usually a relational database) using the JavaTM programming language.

See: Description

·

Interface Summary

Interface

Description

Array

The mapping in the Java programming language for the SQL type ARRAY.

Blob

The representation (mapping) in the Java™ programming language of an SQL BLOB value.

CallableStatement

The interface used to execute SQL stored procedures.

Clob

The mapping in the Java™ programming language for the SQL CLOB type.

Connection

A connection (session) with a specific database.

DatabaseMetaData

Comprehensive information about the database as a whole.

Driver

The interface that every driver class must implement.

DriverAction

An interface that must be implemented when a Driver wants to be notified by DriverManager.

NClob

The mapping in the Java™ programming language for the SQL NCLOB type.

ParameterMetaData

An object that can be used to get information about the types and properties for each parameter marker in a PreparedStatement object.

PreparedStatement

An object that represents a precompiled SQL statement.

Ref

The mapping in the Java programming language of an SQL REF value, which is a reference to an SQL structured type value in the database.

ResultSet

A table of data representing a database result set, which is usually generated by executing a statement that queries the database.

ResultSetMetaData

An object that can be used to get information about the types and properties of the columns in a ResultSet object.

RowId

The representation (mapping) in the Java programming language of an SQL ROWID value.

Savepoint

The representation of a savepoint, which is a point within the current transaction that can be referenced from the Connection.rollback method.

SQLData

The interface used for the custom mapping of an SQL user-defined type (UDT) to a class in the Java programming language.

SQLInput

An input stream that contains a stream of values representing an instance of an SQL structured type or an SQL distinct type.

SQLOutput

The output stream for writing the attributes of a user-defined type back to the database.

SQLType

An object that is used to identify a generic SQL type, called a JDBC type or a vendor specific data type.

SQLXML

The mapping in the JavaTM programming language for the SQL XML type.

Statement

The object used for executing a static SQL statement and returning the results it produces.

Struct

The standard mapping in the Java programming language for an SQL structured type.

Wrapper

Interface for JDBC classes which provide the ability to retrieve the delegate instance when the instance in question is in fact a proxy class.

·

·

Class Summary

Class

Description

Date

A thin wrapper around a millisecond value that allows JDBC to identify this as an SQL DATE value.

DriverManager

The basic service for managing a set of JDBC drivers.
NOTE: The DataSource interface, new in the JDBC 2.0 API, provides another way to connect to a data source.

DriverPropertyInfo

Driver properties for making a connection.

SQLPermission

The permission for which the SecurityManager will check when code that is running an application with a SecurityManager enabled, calls theDriverManager.deregisterDriver method, DriverManager.setLogWriter method, DriverManager.setLogStream (deprecated) method,SyncFactory.setJNDIContext method, SyncFactory.setLogger method, Connection.setNetworktimeout method, or the Connection.abort method.

Time

A thin wrapper around the java.util.Date class that allows the JDBC API to identify this as an SQL TIME value.

Timestamp

A thin wrapper around java.util.Date that allows the JDBC API to identify this as an SQL TIMESTAMP value.

Types

The class that defines the constants that are used to identify generic SQL types, called JDBC types.

·

·

Enum Summary

Enum

Description

ClientInfoStatus

Enumeration for status of the reason that a property could not be set via a call to Connection.setClientInfo

JDBCType

Defines the constants that are used to identify generic SQL types, called JDBC types.

PseudoColumnUsage

Enumeration for pseudo/hidden column usage.

RowIdLifetime

Enumeration for RowId life-time values.

·

·

Exception Summary

Exception

Description

BatchUpdateException

The subclass of SQLException thrown when an error occurs during a batch update operation.

DataTruncation

An exception thrown as a DataTruncation exception (on writes) or reported as a DataTruncation warning (on reads) when a data values is unexpectedly truncated for reasons other than its having exceeded MaxFieldSize.

SQLClientInfoException

The subclass of SQLException is thrown when one or more client info properties could not be set on a Connection.

SQLDataException

The subclass of SQLException thrown when the SQLState class value is '22', or under vendor-specified conditions.

SQLException

An exception that provides information on a database access error or other errors.

SQLFeatureNotSupportedException

The subclass of SQLException thrown when the SQLState class value is '0A' ( the value is 'zero' A).

SQLIntegrityConstraintViolationException

The subclass of SQLException thrown when the SQLState class value is '23', or under vendor-specified conditions.

SQLInvalidAuthorizationSpecException

The subclass of SQLException thrown when the SQLState class value is '28', or under vendor-specified conditions.

SQLNonTransientConnectionException

The subclass of SQLException thrown for the SQLState class value '08', or under vendor-specified conditions.

SQLNonTransientException

The subclass of SQLException thrown when an instance where a retry of the same operation would fail unless the cause of the SQLException is corrected.

SQLRecoverableException

The subclass of SQLException thrown in situations where a previously failed operation might be able to succeed if the application performs some recovery steps and retries the entire transaction or in the case of a distributed transaction, the transaction branch.

SQLSyntaxErrorException

The subclass of SQLException thrown when the SQLState class value is '42', or under vendor-specified conditions.

SQLTimeoutException

The subclass of SQLException thrown when the timeout specified by Statement.setQueryTimeout, DriverManager.setLoginTimeout,DataSource.setLoginTimeout,XADataSource.setLoginTimeout has expired.

SQLTransactionRollbackException

The subclass of SQLException thrown when the SQLState class value is '40', or under vendor-specified conditions.

SQLTransientConnectionException

The subclass of SQLException for the SQLState class value '08', or under vendor-specified conditions.

SQLTransientException

The subclass of SQLException is thrown in situations where a previously failed operation might be able to succeed when the operation is retried without any intervention by application-level functionality.

SQLWarning

An exception that provides information on database access warnings.

·

5. Odbc api信息 约78个api

依据 ODBC 的规格,其API共可分为以下九类:

1. SQLAllocEnv.

2. SQLAllocConnect.

3. SQLConnect.

4. SQLPriverConnect.

5. SQLBrowseConnect.

1. SQLDataSource.

2. SQLGetInfo.

3. SQLGetFunctions.

4. SQLGetTypeInfo.

1. SQLSetConnectOption.

This section contains topics for the following functions:

·

SQLAllocConnect Function

·

·

SQLAllocEnv Function

·

·

SQLAllocHandle Function

·

·

SQLAllocStmt Function

·

·

SQLBindCol Function

·

·

SQLBindParameter Function

·

·

SQLBrowseConnect Function

·

·

SQLBulkOperations Function

·

·

SQLCancel Function

·

·

SQLCancelHandle Function

·

·

SQLCloseCursor Function

·

·

SQLColAttribute Function

·

·

SQLColAttributes Function

·

·

SQLColumnPrivileges Function

·

·

SQLColumns Function

·

·

SQLCompleteAsync Function

·

·

SQLConnect Function

·

·

SQLCopyDesc Function

·

·

SQLDataSources Function

·

·

SQLDescribeCol Function

·

·

SQLDescribeParam Function

·

·

SQLDisconnect Function

·

·

SQLDriverConnect Function

·

·

SQLDrivers Function

·

·

SQLEndTran Function

·

·

SQLError Function

·

·

SQLExecDirect Function

·

·

SQLExecute Function

·

·

SQLExtendedFetch Function

·

·

SQLFetch Function

·

·

SQLFetchScroll Function

·

·

SQLForeignKeys Function

·

·

SQLFreeConnect Function

·

·

SQLFreeEnv Function

·

·

SQLFreeHandle Function

·

·

SQLFreeStmt Function

·

·

SQLGetConnectAttr Function

·

·

SQLGetConnectOption Function

·

·

SQLGetCursorName Function

·

·

SQLGetData Function

·

·

SQLGetDescField Function

·

·

SQLGetDescRec Function

·

·

SQLGetDiagField Function

·

·

SQLGetDiagRec Function

·

·

SQLGetEnvAttr Function

·

·

SQLGetFunctions Function

·

·

SQLGetInfo Function

·

·

SQLGetStmtAttr Function

·

·

SQLGetStmtOption Function

·

·

SQLGetTypeInfo Function

·

·

SQLMoreResults Function

·

·

SQLNativeSql Function

·

·

SQLNumParams Function

·

·

SQLNumResultCols Function

·

·

SQLParamData Function

·

·

SQLParamOptions Function

·

·

SQLPrepare Function

·

·

SQLPrimaryKeys Function

·

·

SQLProcedureColumns Function

·

·

SQLProcedures Function

·

·

SQLPutData Function

·

·

SQLRowCount Function

·

·

SQLSetConnectAttr Function

·

·

SQLSetConnectOption Function

·

·

SQLSetCursorName Function

·

·

SQLSetDescField Function

·

·

SQLSetDescRec Function

·

·

SQLSetEnvAttr Function

·

·

SQLSetParam Function

·

·

SQLSetPos Function

·

·

SQLSetScrollOptions Function

·

·

SQLSetStmtAttr Function

·

·

SQLSetStmtOption Function

·

·

SQLSpecialColumns Function

·

·

SQLStatistics Function

·

·

SQLTablePrivileges Function

·

·

SQLTables Function

·

·

SQLTransact Function

·

6. 参考

ADO、OLEDB、ODBC之间的关系图 - 百科教程网_经验分享平台[上学吧经验教程频道].html

java.sql (Java Platform SE 8 ).html

ODBC API Reference.html

OleDbConnection 类 (System.Data.OleDb).html

Atitit.跨语言数据库db  api兼容性 jdbc odbc ado oledb 增强方案的更多相关文章

  1. atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js

    atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js 1. 两个方法:: bat vs mysqldump(推荐)  vs   lang  ...

  2. atitit.跨语言执行cmd cli api的原理及兼容性设计草案

    atitit.跨语言执行cmd cli api的原理及兼容性设计草案 1. 标准输入,标准输出,标准错误与重新定向1 2. 常见问题2 2.1. 执行bat文件2 2.2. 执行bat文件  /c   ...

  3. Atitit.跨语言反射api 兼容性提升与增强 java c#。Net  php  js

    Atitit.跨语言反射api 兼容性提升与增强 java c#.Net  php  js 1. 什么是反射1 1.1.       反射提供的主要功能:1 1.2.       实现反射的过程:1 ...

  4. Atitit.跨语言 java c#.net php js常用的codec encode算法api 兼容性  应该内置到语言里面

    Atitit.跨语言 java c#.net php js常用的codec encode算法api 兼容性  应该内置到语言里面 1. 常用算法1 1.1. 目录2 1.2. 定义和用法编辑2 1.3 ...

  5. Atitit.跨语言系统服务管理器api兼容设计

    Atitit.跨语言系统服务管理器api兼容设计 1. Common api,兼容sc ,service control??1 1.1. 服务创建,use sc1 1.2. 服务delete ,use ...

  6. Atitit.跨语言异常转换机制 java c# php到js的异常转换

    Atitit.跨语言异常转换机制 java c# php到js的异常转换 1. bizEx   直接抓取,然后js catchEX1 2. Chkec runtimeEx1 3. Other异常..J ...

  7. Atitit.跨语言  文件夹与文件的io操作集合  草案

    Atitit.跨语言  文件夹与文件的io操作集合  草案 1. Jdk原生的太难用了..1 2. PS: apache commons-io包,FileUtils有相关的方法,IOUtils一般是拷 ...

  8. Atitit.跨平台预定义函数 魔术方法 魔术函数 钩子函数 api兼容性草案 v2 q216  java c# php js.docx

    Atitit.跨平台预定义函数 魔术方法 魔术函数 钩子函数 api兼容性草案 v2 q216  java c# php js.docx 1.1. 预定义函数 魔术方法 魔术函数是什么1 1.2. & ...

  9. 数据库访问接口(ODBC,OLEDB,ADO)

    数据库访问接口发展历史 ODBC历史 ODBC(Open Database Connectivity,开放数据库互连).要了解ODBC是什么,先了解一下数据库连接的相关知识.在最开始连接数据库时,由于 ...

随机推荐

  1. Diamond Collector (动态规划)

    问题 I: Diamond Collector 时间限制: 1 Sec  内存限制: 64 MB提交: 22  解决: 7[提交][状态][讨论版] 题目描述 Bessie the cow, alwa ...

  2. 3、Django实战第3天:数据建模

    users modesl.py设计 UserProfile 用户信息 EmailVerifyRecord 验证码 Banner 轮播图 之前我们生成了Django默认的数据表,里面有张表示auth-u ...

  3. SHELL 在指定行的前/后插入指定内容

    #如果知道行号可以用下面的方法 sed -i '88 r b.file' a.file    #在a.txt的第88行插入文件b.txt awk '1;NR==88{system("cat ...

  4. APP换肤

    一.需求说明 当一个APP用户量大的时候,就需要给不同的用户做标签,用来彰显身份.比如QQ的会员,VIP等不同的皮肤功能. 二.实现方法. 所谓不同的皮肤,就是不同的权限(身份)显示不同的本地或者网络 ...

  5. 【暴力】vijos P1897 学姐吃牛排

    判断堆:递归判断每个节点的孩子是否都比其父亲大(小). 判断BST:中序遍历是否有序. #include<cstdio> using namespace std; #define lc ( ...

  6. Java高级架构师(一)第16节:Mybatis动态查询和Json自动拼装

    <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding= ...

  7. Swift中混编OC第三方库

    现在Swift的第三方库还比较少,有时候需要使用OC的第三方库,其实也是很容易的.   我们使用如下步骤: 1.新建的Swift项目,第一次创建OC文件时会询问是否生成 桥接头,选择是的话会生成一个桥 ...

  8. 网络采集软件核心技术剖析系列(5)---将任意博主的全部博文下载到内存中并通过Webbrower显示(将之前的内容综合到一起)

    一 本系列随笔概览及产生的背景 自己开发的豆约翰博客备份专家软件工具问世3年多以来,深受广大博客写作和阅读爱好者的喜爱.同时也不乏一些技术爱好者咨询我,这个软件里面各种实用的功能是如何实现的. 该软件 ...

  9. 【mybatis】mybatis方法访问报错:org.apache.ibatis.builder.IncompleteElementException: Could not find result map com.pisen.cloud.luna.ms.goods.base.domain.GoodsConfigQuery

    在调用mapper.xml中的方法的时候,报错: org.apache.ibatis.builder.IncompleteElementException: Could not find result ...

  10. 重新学习vue基础

    1.创建vue实例 var vm = new Vue({ el: '#example', //选择元素 data: {a:1} //基本数据 }) 2.模板语法 (一)基本语法 <span> ...