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

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:[email protected]

转载请注明来源: 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

时间: 2024-10-11 05:56:53

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

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

atitit.跨语言执行cmd cli api的原理及兼容性设计草案 1. 标准输入,标准输出,标准错误与重新定向1 2. 常见问题2 2.1. 执行bat文件2 2.2. 执行bat文件  /c  与/k   /k  参数,有利于调试2 2.3. Bat参数的隐藏命令::使用@后头符2 2.4. 空格的问题 双引号解决2 2.5. 回显乱码 cmd win默认是gbk编码..使用gbk编码读取佐ok2 2.6.  双引号转译问题2 2.7. Name param的问题2 3. Java cod

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

Atitit.跨语言反射api 兼容性提升与增强 java c#.Net  php  js 1. 什么是反射1 1.1.       反射提供的主要功能:2 1.2.       实现反射的过程:2 2. 类反射中所必须的类: 的类反射所需要的类并不多,它们分别是:Field.Constructor.Method.Class.Object,2 3. . 反射的用处3 3.1. 可视化 3 3.2. 系统的灵活性.可扩展性 3 3.3. Json xml序列化3 3.4. 函数指针3 3.5. R

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

1. Common api,兼容sc ,service control??1 1.1. 服务创建,use sc1 1.2. 服务delete ,use  sc1 1.3. 服务start,  net start1 1.4. Service stop, net stop.1 1.5. Service  wrapper1 2. Windows系统2 3. Linux系统:是使用shell脚本来的创建服务的..2 4. Biz sys 服务管理器3 5. Ref3 1. Common api,兼容sc

数据库访问技术之JDBC

在了解JDBC之前呢,我们可以先对ODBC做一个回顾,以便于更好的理解JDBC.看名字也知道这两个关系不一般,他们实现了同样的功能,为应用程序连接和操作数据库提供支持.所以,我们先从ODBC开始. ODBC ODBC(Open Database Connectivity)是开放数据库互连的简称,是一种使用SQL的应用程序接口.它是一系列的规范和对数据库访问的API.那么API+SQL就可以执行对数据库的操作.它是不依赖于DBMS的,即通过ODBC可以以相同的方式连接大部分数据库.它包括了应用程序

Golang、Php、Python、Java基于Thrift0.9.1实现跨语言调用

目录: 一.什么是Thrift? 1) Thrift内部框架一瞥 2) 支持的数据传输格式.数据传输方式和服务模型 3) Thrift IDL 二.Thrift的官方网站在哪里? 三.在哪里下载?需要哪些组件的支持? 四.如何安装? 五.Golang.Java.Python.PHP之间通过Thrift实现跨语言调用 1) Golang 客户端和服务端的实现及交互 2) python 客户端的实现与golang 服务端的交互 3) php 客户端的实现与golang 服务端的交互 4) java

(转)使用Thrift0.9.1实现跨语言调用Golang、Php、Python、Java

问题导读:什么是Thrift?Thrift的官方网站在哪里?Golang.Java.Python.PHP之间如何通过Thrift实现跨语言调用? 一.什么是Thrift Thrift是一种可伸缩的跨语言服务的发展软件框架.它结合了功能强大的软件堆栈的代码生成引擎,以建设服务. Thrift是facebook开发的,07年4月开放源代码,08年5月进入apache孵化器.创造Thrift是为了解决facebook系统中各系统间大数据量的传 输通信以及系统之间语言环境不同需要跨平台的特性.所以thr

跨语言学习的基本思路及python的基础学习

笔者是C#出身,大学四年主修C#,工作三年也是C#语言开发.但在学校里其他的语言也有相应的课程,eg:Java,Php,C++都学过,当然只是学了皮毛(大学嘛,你懂得),严格来说未必入门,但这些语言的代码阅读倒是不成问题,毕竟触类旁通嘛,有道是“一法通,万法明”,多学学其他的也没坏处. 近期被临时借调到其他项目组,由于新项目用的是Python,本人呢又没有python开发经验(之前只是知道有这门语言),工期呢两周多吧,简单来说就是时间紧,任务重,而且开发环境完全陌生,于是就得快速学会使用一门新语

CAT跨语言服务加拿大28平台搭建链监控(七)消息分析器与报表

CrossAnalyzer-调用链加拿大28平台搭建论坛:haozbbs.com Q1446595067分析 在分布式环境中,应用是运行在独立的进程中的,有可能是不同的机器,或者不同的服务器进程.那么他们如果想要彼此联系在一起,形成一个调用链,在Cat中,CrossAnalyzer会统计不同服务之间调用的情况,包括服务的访问量,错误量,响应时间,QPS等,这里的服务主要指的是 RPC 服务,在微服务监控中,这是核心. 在讲 CrossAnalyzer 的处理逻辑之前,我们先看下客户端的埋点的一个

C语言数据库编程

----摘自个人C语言数据库项目报告 3.4逻辑结构的SQL语句实现 创建基本表: 3.4-1建立商品表: create table goods(goods_id int primary key,goods_types varchar,goods_name varchar,goods_price varchar,appraise text); 3.4-2建立卖家表: create table seller(seller_id int primary key,seller_name varchar