当前位置:首页 » 数据仓库 » 数据库接口方案
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

数据库接口方案

发布时间: 2022-09-23 14:44:13

① WEB网和数据库的主要接口方式有哪四种

不理解你所说的是什么意思.我按照自己的意思理解一下,就是前台(Asp.net,php,jsp)等和后台数据库(sql server,oracle啥的)的连接
每种语言都有自己和后台数据库的一组类库,比如我是学.net的,连接数据库有ado.net可以连接几乎所有的主流数据库,有一些比较偏的数据库会自己提供类库

而不同语言之间的访问,比如我用asp.net想访问java做的数据访问层,现在比较通用的是通过web service,即一个与语言无关的中间层将其隔离

希望我的回答能有帮助~

② 数据库接口技术是为了实现应用系统和数据库管理系统的链接而出现的技术对吗

对。
Microsoft推出的ODBCOpenDatabaseConnectivity技术,为异质数据库的访问提供了统一的接口。ODBC基于SQStructuredQueryLanguage,并把它作为访问数据库的标准。这个接口提供了最大限度的相互可操作性,一个应用程序可以通过一组通用的代码访问不同的数据库管理系统。一个软件开发者开发的客户/服务器应用程序不会被束定于某个特定的数据库之上。ODBC可以为不同的数据库提供相应的驱动程序。

③ 数据库接口的数据库接口技术

Microsoft推出的ODBC(Open Database Connectivity)技术 为异质数据库的访问提供了统一的接口。ODBC基于SQL(Structured Query Language),并把它作为访问数据库的标准。这个接口提供了最大限度的相互可操作性:一个应用程序可以通过一组通用的代码访问不同的数据库管理系统。一个软件开发者开发的客户/服务器应用程序不会被束定于某个特定的数据库之上。ODBC可以为不同的数据库提供相应的驱动程序。 什么是ODBC ?
ODBC基于SQL(Structured Query Language),并把它作为访问数据库的标准。这个接口提供了最大限度的相互可操作性:一个应用程序可以通过一组通用的代码访问不同的数据库管理系统。
与ODBC有关的名词
ODBC驱动程序:是一个动态链接库(DLL),用以将特定的开放式数据库连接的数据源和另一个应用程序(客户端)相连接。
ODBC数据源:作为数据源使用的数据库或数据库服务器。ODBC数据源通过它们的数据源名称来引用,或者通过具体引用ODBC驱动程序和服务器名称来引用。可以在Windows的控制面板中使用ODBC管理程序或rdoRegisterDataSource(一个ODBC API)方法来注册命名的数据源。
ODBC驱动程序管理器:提供从主机语言到特定后端数据源驱动程序的接口。
ODBC API:数据库厂商为程序设计者提供的直接访问数据库的一组函数。注意:这里要指出的是,虽然ODBC API提供了很多很方便而且强大的功能。但是通常来说ODBC API都比较难学,而且使用很容易出错。虽然允许用ODBC API来操作ODBC句柄,但还是要小心,如果不正确地使用ODBC API,可能会导致不可预知的错误。例如,假如使用ODBC API代码来关闭连接或释放这些ODBC句柄中的任何一个,那么RemoteData控件或RDO的行为将是不可预知的。保存ODBC句柄以供备用也是没有意义的,因为它们是可变的。 什么是JDBC ?
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名。
简单地说,JDBC 可做三件事:、发送 操作数据库的语句并处理结果。下列代码段给出了以上三步的基本示例:
Connection con = DriverManager.getConnection(jdbc:odbc:wombat,login,
password);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(SELECT a, b, c FROM Table1);
while (rs.next()) {
int x = rs.getInt(a);
String s = rs.getString(b);
float f = rs.getFloat(c);
}
上述代码对基于JDBC的数据库访问做了经典的总结。
这里简单介绍下ODBC和JDBC,如果想详细了解的同学可以单击链接去相应词条。

④ .net 数据库访问接口有哪些

.net数据库访问技术是ADO.net体系。主要有三大部分。
数据提供程序、DataSet、DataTable
数据提供程序接口有四个基类 Connection(连接数据库) Command(执行SQL命令) DataAdapter(提取或填充数据) DataReader(读取数据)
DataSet用来快速操作大量的数据
DataTable表示一个表。

⑤ 做个数据库接口

9.Sql Server7.0/2000数据库
#import "c:\Program Files\Common Files\System\ADO\msado15.dll" \
no_namespace rename("EOF", "EndOfFile")
::CoInitialize(NULL); // 初始化OLE/COM库环境 ,为访问ADO接口做准备

_RecordsetPtr m_pRecordset("ADODB.Recordset");
_ConnectionPtr m_pConnection("ADODB.Connection");

_bstr_t bstrSQL("select * from stu_info"); //查询语句
char * query_cmd = "DELETE FROM stu_info WHERE sname = ’本拉登’";

try
{
// 创建Connection对象
m_pConnection.CreateInstance("ADODB.Connection");
// 设置连接字符串,必须是BSTR型或者_bstr_t类型
_bstr_t strConnect= "Provider=SQLOLEDB;Server=(local);Database=student; uid=sa; pwd=123;";
//若数据库在网络上则Server为形如(192.168.1.5,3340)
//用户sa和密码123只是针对我的库
m_pConnection->Open(strConnect,"","",adModeUnknown);
if(m_pConnection==NULL)
cerr<<"Lind data ERROR!\n";
// 创建记录集对象
m_pRecordset.CreateInstance(__uuidof(Recordset));
// 取得表中的记录
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),
adOpenDynamic,adLockOptimistic,adCmdText);

_variant_t vsnum,vsname,vsage,vssex,vsmajor; //对应库中的snum,sname,sage,ssex,smajor
cout << "学号 姓名 年龄 姓别 专业";
cout << "\n----------------------------------------------------------------\n";

while (!m_pRecordset->EndOfFile)
{
vsnum = m_pRecordset->GetCollect(_variant_t((long)0));//这儿给字段编号和字段名都可以
vsname = m_pRecordset->GetCollect("sname");
vsage = m_pRecordset->GetCollect("sage");
vssex = m_pRecordset->GetCollect("ssex");
vsmajor = m_pRecordset->GetCollect("smajor");
if (vsnum.vt != VT_NULL && vsname.vt != VT_NULL && vsage.vt != VT_NULL
&& vssex.vt != VT_NULL && vsmajor.vt != VT_NULL)
{
cout.setf(ios::left);
cout << setw(14) << (char*)(_bstr_t)vsnum;
cout << setw(14) << (char*)(_bstr_t)vsname;
cout << setw(8) << vsage.lVal;
cout << setw(8) << (char*)(_bstr_t)vssex;
cout <<setw(20) << (char*)(_bstr_t)vsmajor;
cout.unsetf(ios::left);
cout << endl;
}
m_pRecordset->MoveNext(); ///移到下一条记录
}
cout << "\n----------------------------------------------------------------\n";
cout << "\n请输入你要添加的学生信息\n";
cout << "学号:";
cin >> student.snum;
cout << "\n姓名:";
cin >> student.sname;
cout << "\n年龄:";
cin >> student.sage;
cout << "\n姓别:";
cin >> student.ssex;
cout << "\n专业:";
cin >> student.smajor;
m_pRecordset->MoveFirst(); //移动到第一条记录
m_pRecordset->AddNew(); ///添加新记录
m_pRecordset->PutCollect("snum",_variant_t(student.snum));
m_pRecordset->PutCollect("sname",_variant_t(student.sname));
m_pRecordset->PutCollect("sage",_variant_t(student.sage));
m_pRecordset->PutCollect("ssex",_variant_t(student.ssex));
m_pRecordset->PutCollect("smajor",_variant_t(student.smajor));
m_pRecordset->Update();

m_pConnection->Execute(query_cmd,NULL,1); //用Execute执行sql语句来删除
m_pRecordset->Close(); // 关闭记录集
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
cerr << "\nERROR:" << (char*)e.Description();//抛出异常
}
if(m_pConnection->State)
m_pConnection->Close();
::CoUninitialize();

3.显示表格
/*
#import "c:\Program Files\Common Files\System\ADO\msado15.dll" \
no_namespace rename("EOF", "EndOfFile")
*/
CoInitialize(NULL);
_bstr_t varSource="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=*.mdb";
//_bstr_t varSource="Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;"
_ConnectionPtr m_pConnection(_uuidof(Connection));
m_pConnection->Open(varSource,"","",adModeUnknow);
//打开属性为默认(adModeRead(只读),adModeWrite(可写),adModeReadWrite(可读写)等)
_RecordsetPtr m_pSet(_uuid(Recordset));
try {
HRESULT hr=m_pSet->Open(%%1,m_pConnection.GetInterfacePtr(),
adOpenDynamic,adLockPessimistic,adCmdText);
}
catch(_com_error *e){
AfxMessageBox(e->ErrorMessage());
}
if(SUCCESSED(hr))
{
//表打开成功
}
FieldsPtr p_fields=m_pSet->Fields;
FieldPtr p_field;
_variant_t var_index;
LPCSTR field_name;
int index=0;
_bstr_t bstr_field_name;
int countfields=p_fields->GetCount();
CString *Column=new CString[countfields];
CListCtrl *pList=(CListCtrl*)GetDlgItem(%%1);//IDC_LIST_TABLEDATA
VERIFY(pList);
pList->DeleteAllItems();
for(index=0;index<countfields;index++)
{
var_index.vt=VT_I4;
var_index.IVal=index;
p_field=p_fields->Item[var_index];
bstr_field_name=p_field->GetName();
field_name=(LPCSTR)bstr_field_name;
Column[index]=field_name;
int ColumnWidth=Column[index].GetLength()*15;
pList->InsertColumn(index,field_name,LVCFMT_CENTER,ColumnWidth);
}
int i=0;
_bstr_t vCol;
//pList->SetTextBkColor(RGB(122,200,122));
//pList->SetTextColor(RGB(0,0,200));
while(!m_pSet->adoEOF)
{
pList->Insert(i,atoi(i));
for(int j=0;j<countfields;j++)
{
vCol=m_pSet->GetCollect((long)j);
pList->SetItemText(i,j,vCol);
}
m_pSet->MoveNext();
i++;
}
CoUninitialize(NULL);

4.操作表格
/*
#import "c:\Program Files\Common Files\System\ADO\msado15.dll" \
no_namespace rename("EOF", "EndOfFile")
*/
CoInitialize(NULL);
_bstr_t varSource="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=*.mdb";
//_bstr_t varSource="Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;"
_ConnectionPtr m_pConnection(_uuidof(Connection));
m_pConnection->Open(varSource,"","",adModeUnknow);
//打开属性为默认(adModeRead(只读),adModeWrite(可写),adModeReadWrite(可读写)等)
_RecordsetPtr m_pSet(_uuid(Recordset));
try {
HRESULT hr=m_pSet->Open(%%1,m_pConnection.GetInterfacePtr(),
adOpenDynamic,adLockPessimistic,adCmdText);
}
catch(_com_error *e){
AfxMessageBox(e->ErrorMessage());
}
if(SUCCESSED(hr))
{
//表打开成功
}
FieldsPtr p_fields=m_pSet->Fields;
FieldPtr p_field;
_variant_t var_index;
LPCSTR field_name;
int index=0;
_bstr_t bstr_field_name;
int countfields=p_fields->GetCount();
CString *Column=new CString[countfields];
CListCtrl *pList=(CListCtrl*)GetDlgItem(%%1);//IDC_LIST_TABLEDATA
VERIFY(pList);
pList->DeleteAllItems();
for(index=0;index<countfields;index++)
{
var_index.vt=VT_I4;
var_index.IVal=index;
p_field=p_fields->Item[var_index];
bstr_field_name=p_field->GetName();
field_name=(LPCSTR)bstr_field_name;
Column[index]=field_name;
int ColumnWidth=Column[index].GetLength()*15;
pList->InsertColumn(index,field_name,LVCFMT_CENTER,ColumnWidth);
}
int i=0;
_bstr_t vCol;
//pList->SetTextBkColor(RGB(122,200,122));
//pList->SetTextColor(RGB(0,0,200));
while(!m_pSet->adoEOF)
{
pList->Insert(i,atoi(i));
for(int j=0;j<countfields;j++)
{
vCol=m_pSet->GetCollect((long)j);
pList->SetItemText(i,j,vCol);
}
m_pSet->MoveNext();
i++;
}
CoUninitialize(NULL);

6.关闭时断开连接
::ExitInstance()
{
if (adStateOpen == ADOConn->State)
ADOConn->Close();
ADOConn.Release();
if(adStateOpen == m_pADOset->State)
m_pADOset->Close();
m_pADOset.Release();
return CWinApp::ExitInstance();
}

22.批量执行SQL和存储过程
22.1、如果用ODBC访问数据库的话,可参考下列代码:
CDatabase * pDatabase = new CDatabase;
TRY
{
pDatabase->OpenEx( _T("DSN=ODBCName;UID=%%1;PWD=%%2"), CDatabase::noOdbcDialog);
}
CATCH (CDBException, e)
{
delete pDatabase;
return;
}END_CATCH
SQL.Format("exec sp_Name");//有参数的话直接写再后面
pDatabase->ExecuteSQL(SQL);
pDatabase->Close();
delete pDatabase;

22.2、用ADO调用存储过程
_ConnectionPtr Conn = NULL;
_RecordsetPtr Rs = NULL;
_CommandPtr Cmd = NULL;
CoInitialize(NULL);
Conn.CreateInstance ( __uuidof(Connection));
Rs.CreateInstance (__uuidof(Recordset));
Cmd.CreateInstance (__uuidof(Command));
Conn->Open(L"db", L"sa", L"", adOpenUnspecified); //打开正常
//如下为_CommandPtr对象参数的赋值和调用
Cmd->ActiveConnection = Conn;
Cmd->CommandText = "SP_TEST";
//数据库中实际存在这个测试存储过程,select * from atable,不传递参数
Cmd->CommandType = adCmdStoredProc;
Cmd->Parameters->Refresh();
Rs = Cmd->Execute( NULL,NULL, adCmdUnknown ); //COM出错。
//注释掉的代码为直接的SQL语句提交,运行正确。
//Cmd->ActiveConnection=Conn;
//Cmd->CommandText = "select * from atable";
//Cmd->CommandType = adCmdText;
//Cmd->Parameters->Refresh();
//Rs = Cmd->Execute(NULL,NULL,adCmdUnknown);
Rs->Close();
Conn->Close();
CoUninitialize();

⑥ 数据库接口的实现逻辑是怎样的

一般的数据库操作都是封装好的,不外乎创建连接,打开连接,执行操作,关闭连接几个步骤,具体看是使用的哪种数据库,不同数据库驱动不同,具体实现代码也不一样。

⑦ 网站的数据库查询接口怎么做

jsp网站,想提供接口给其他项目获取数据库的数据方法如下:
jsp接收参数,就跟java类接收参数一样,用request.getParameter("参数名");获取
网页游戏发送上来的参数,然后调用数据库,把需要的信息查询出来,通过字符串或者xml或者
json总之一切你想要的数据格式,返回出来就可以了。
返回出来实现:直接利用outputstream对象write出来即可,最后记得关闭。
java.io.OutputStream os = response.getOutputStream();
os.write(buf, 0, readSize);

⑧ 数据接口

系统在运行中将用到大量的数据资料,必须在设计初始就明确各类数据标准以及各子系统的数据接口。根据各子系统设计的数据项需求及产生的成果数据项,确定各项数据的数据表,定义表结构,进行代码设计,然后由数据库系统实施,同时形成文档,作为系统的数据标准,统一执行。

数据的分类、编码设计、数据库的设计、地图制图、数据录入和质量检验,均遵循国家和行业主管部门的标准、规范、规程;如没有统一的规范规程,则参照相关的规程进行规范化设计。系统有关的数据定义全部形成文档,作为技术规范,统一使用。

各子系统在设计时应当明确与相关子系统的数据关系,提出相关子系统必须提交的数据表要求和系统运行过程中的提交时间,对应子系统按照该提交数据要求在系统中进行相应设计和开发,保证数据流动的通畅,这是基于数据的系统集成方案的关键,是数据平台接口设计的重要依据。系统间数据关系须形成文档,作为系统间数据接口标准规范,统一执行。

数据关系与数据标准相辅相成,共同定义了数据平台与各个子系统之间的输入、输出接口。在数据接口设计中应重点考虑以下几个方面:

(1)遥感数据与图形数据的接口:利用图形配准技术,予以解决。遥感数据是动态监测专题图件产生的基础,必须经过坐标配准,才能产生专题图件。配准过程由遥感动态监测子系统执行,需要应用综合数据库中的地形图数据。在配准后遥感数据与图形数据的套合依据空间坐标进行。

(2)空间数据与属性数据的接口:利用关键字建立联系。在数据建库过程中依据数据标准有关文档规定建立图形库和属性库结构,确定关键字段,同时定义关键字段编码方案,保证关键字段唯一性。在数据采集过程中对关键字段赋予代码。系统维护过程中的数据采集也必须依据编码方案对关键字段赋值。在应用系统中使用时只需建立图形库与属性库间的关联即可。

( 3) 子系统之间数据的接口: 各子系统之间数据的交换通过数据库进行,所以子系统间数据接口本质上是子系统与后台数据库的接口; 在建立数据库时,已经由数据库管理系统依据系统间数据关系建立了接口。

系统内数据关系包括:

数据管理与数据库子系统接受业务处理与信息服务子系统录入的有关基础信息、遥感动态监测子系统输入的遥感数据及各子系统产生的成果数据,为各子系统提供综合基础数据、专题数据和成果数据。

遥感动态监测子系统需要数据库系统管理的遥感数据、地形图数据和历史专题数据。

生态专业分析子系统需要遥感动态监测子系统产生的专题图件和综合数据库中的历史专题图件以及属性资料。

业务处理与信息服务子系统需要数据库子系统管理的综合基础数据和各专业应用子系统产生的成果数据。

⑨ 如何在应用层和数据库之间建设数据接口

【答案】A、B、D【答案解析】数据库管理系统具有以下特点:(1)采用复杂的数据模型表示数据结构,数据冗余小,易扩充,实现了数据共享;(2)具有较高的数据和程序独立性,数据库的独立性有物理独立性和逻辑独立性;(3)数据库系统为用户提供了方便的用户接口;(4)数据库系统提供4个方面的数据控制功能,分别是并发控制、恢复、完整性和安全性,数据库中各个应用程序所使用的数据由数据库系统统一规定,按照一定的数据模型组织和建立,由系统统一管理和集中控制;(5)增加了系统的灵活性。